Lesson04 miyaoka forked:2 favorite:1 lines:65 license : MIT License modified : 2009-03-17 11:40:35 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")); } } } Code Fullscreen Preview Fullscreen mandel59 : event event dispatchEvent graphics target removeEventListener removeChild mouseY mouseX addEventListener addChild Event.ENTER_FRAME uint Math.random Event Sprite Number sort new page view favorite forked pv 530 forked from: Lesson04 sw_lucchini forked:0 favorite:0 lines:75 ( diff:36 ) pv 420 forked from: Lesson04 tomoneko forked:0 favorite:0 lines:79 ( diff:21 )