Lesson04
/**
* 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"));
}
}
}