forked from: forked from: nengafl

by hacker_yk666qry forked from forked from: nengafl (diff: 18)
クリックするとランダムな色・形の円がランダムな方向に動いていくサンプル
♥0 | Line 39 | Modified 2010-01-10 10:03:08 | MIT License
play

ActionScript3 source code

/**
 * Copyright hacker_yk666qry ( http://wonderfl.net/user/hacker_yk666qry )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/iEWK
 */

// forked from sugyan's forked from: nengafl
// forked from nengafl's nengafl
/*
 クリックするとランダムな色・形の円がランダムな方向に動いていくサンプル
*/
package {
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.MouseEvent;

    public class Sample extends Sprite {
    		private var circle:Circle;
        public function Sample() {
            // クリックの検出
            // マウス座標を中心に円を出現させる
            stage.addEventListener(MouseEvent.CLICK, function(event:MouseEvent):void {
                    circle = new Circle(event.stageX, event.stageY);
                    addChild(circle);
                }
            );
            // 出現させた円をそれぞれ動かす
            /*
		stage.addEventListener(Event.ENTER_FRAME, function():void {
	
                    for (var i:int = 0; i < numChildren; i++) {
                        var circle:Circle = getChildAt(i) as Circle;
                        circle.move();
                    }
		});
		*/
		
		stage.addEventListener(Event.ENTER_FRAME, onEF);
		
		 function onEF(e:Event):void {
			                    for (var i:int = 0; i < numChildren; i++) {
                        circle = getChildAt(i) as Circle ;
                        circle.move();
                    }
		}
		
        }
    }
}


import flash.display.Sprite;

class Circle extends Sprite {
	// 移動する速度
    private var vx:Number;
    private var vy:Number;

    public function Circle(x:Number, y:Number) {
        // 半径を10〜40でランダムに決定
        var r:Number = 10.0 + Math.random() * 30.0;
        // x, y 方向の移動速度を-5〜+5で指定
        vx = Math.random() * 10.0 - 5.0;
        vy = Math.random() * 10.0 - 5.0;
        // 塗りつぶしの色もランダムに
        var color:uint = Math.floor(Math.random() * 0xFFFFFF);
        
        graphics.beginFill(color);
        graphics.drawCircle(x, y, r);
    }

    // 生成時に指定した速度で移動させる
    public function move():void {
        x += vx;
        y += vy;
    }
}