In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

Lesson04

Get Adobe Flash player
by miyaoka 17 Mar 2009
/**
 * Copyright miyaoka ( http://wonderfl.net/user/miyaoka )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/1JlA
 */

package  
{
	import flash.display.Graphics;
	import flash.display.Sprite;
	import flash.events.MouseEvent;
	import flash.events.Event;
	
	[SWF(width="465", height="465", backgroundColor= 0xffffff, frameRate="60")]
	public class Lesson04
	extends Sprite
	{
		public function Lesson04() 
		{
			//イベントと関数を結びつける--------------------------------

			//マウスをクリックでmouseDownHandlerという関数を呼ぶ			
			stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
		}
		private function mouseDownHandler(e:MouseEvent):void 
		{
			//--------------------------------------------
			//ballというオブジェクトを生成して、マウス位置に配置する
			
			//生成
			var ball:Ball = new Ball();
			
			//マウス位置に移動
			ball.x = mouseX;
			ball.y = mouseY;
			
			//オワタイベントを監視する
			ball.addEventListener("owata", owataHandler);
			
			//オブジェクトを配置して表示させる
			addChild(ball);
		}
		private function owataHandler(e:Event):void 
		{
			//この関数を呼び出したオブジェクトを取り出す
			var ball:Ball = e.target as Ball;
			
			//オワタイベントを外す
			ball.removeEventListener("owata", owataHandler);
				
			//表示から外す
			removeChild(ball);
				
			//消去する
			ball = null;
		}

		
	}
}


import flash.display.Graphics;
import flash.display.Sprite;
import flash.events.Event;
class Ball
extends Sprite
{
	private var yMove:Number = 0;
	private var bound:uint = 0;
	private var grav:Number = 0.2;
	public function Ball():void 
	{
		//中心点に円を描く
		var g:Graphics = graphics;
		
		//ランダムな色を作る
		var color:uint = Math.random() * 0xFFFFFF;
		
		g.beginFill(color, 1.0);
		g.drawCircle(0, 0, 20);	
		
		
		//毎フレームenterFrameHandlerという関数を呼ぶように登録する
		addEventListener(Event.ENTER_FRAME, enterFrameHandler);
	}
	private function enterFrameHandler(e:Event):void 
	{
		//y座標に、縦移動を加える
		y += yMove;
		
		//縦移動に重力を加える
		yMove += grav;
		
		//一定以上下まで行ったら
		if (y > 400)
		{
			//一定まで座標を戻す
			y = 400;
			
			//縦移動を反転させてバウンドさせる
			yMove *= -0.8;
			
			//バウンド回数を1増やす
			bound++;
		}
		
		//3回以上バウンドしたら
		if (bound > 3)
		{
			
			//毎フレームのイベントを外す
			removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
			
			//オワタイベントを送出する
			dispatchEvent(new Event("owata"));
		}
	}
}