forked from: 魔法使いが炎の魔法を指先から放つようなものを作りたい

by undo forked from 魔法使いが炎の魔法を指先から放つようなものを作りたい (diff: 89)
♥0 | Line 59 | Modified 2010-06-17 17:06:53 | MIT License
play

ActionScript3 source code

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

// forked from cpu_t's 魔法使いが炎の魔法を指先から放つようなものを作りたい
package
{
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.display.Shape;
    
    [SWF(backgroundColor='0x0',width='465',height='465',frameRate='60')]
    public class FlashTest extends Sprite
    {
        public function FlashTest()
        {
            makeCircles(50);
            addEventListener(Event.ENTER_FRAME,loop);
        }
        
        private var _maxRadius:Number = 100;
        private var _explodeArray:Array = [];
        
        private function makeCircles(numCircle:int = 10):void
        {
        		for(var i:int = 0; i < numCircle; i++)
        		{
        			var ex:Explode = new Explode(Math.random()*this._maxRadius);
        			addChild(ex);
        			this._explodeArray.push(ex);
        			
        		}
        }
        
        private function loop(e:Event):void
        {
        		for(var i:int = 0; i < this._explodeArray.length; i++)
        		{
        			var ex:Explode = this._explodeArray[i] as Explode;
        			ex.update();
        		}
        }
    }
}

import flash.display.Sprite;
import flash.events.Event;
class Explode extends Sprite
{
	private var vx:Number;	private var vy:Number;	private var _size:Number;	public function Explode(size:Number=20)
		{
		this._size = size;				this.graphics.beginFill(0x201000);
		this.graphics.drawCircle(0,0,_size);
		this.graphics.endFill();
		this.blendMode = 'add';
		
		vx=Math.random()*2 -1;
		vy=Math.random()*2 -1;
		
		this.addEventListener(Event.ADDED_TO_STAGE, onAdded);
	}
	private function onAdded(evt:Event):void
	{
		removeEventListener(Event.ADDED_TO_STAGE, onAdded);		this.x = Math.random()*this.stage.stageWidth;
		this.y = Math.random()*this.stage.stageHeight;
	}
	public function update():void
	{
		this.x+=vx;
		this.y+=vy;
		(this.x > this.stage.stageWidth + this._size )? this.x = -this._size:(this.x < -this._size)?this.x = this.stage.stageWidth+this._size:0;		(this.y > this.stage.stageHeight + this._size )? this.y = -this._size:(this.y < -this._size)?this.y = this.stage.stageHeight+this._size:0;	}
}