forked from: flash on 2010-1-3

by kazutoyo forked from flash on 2010-1-3 (diff: 52)
...
@author kazutoyo@富山商船コンピュータ部
円を拡大してみた。
♥0 | Line 57 | Modified 2010-01-04 19:49:48 | MIT License
play

ActionScript3 source code

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

// forked from hig_an's flash on 2010-1-3

package {
	import flash.display.MovieClip;
    import flash.display.Sprite;
	import caurina.transitions.Tweener;
	import flash.events.TimerEvent;
	import flash.utils.Timer;
	
    /**
	 * ...
	 * @author kazutoyo@富山商船コンピュータ部
	 * 円を拡大してみた。
	 */
	
    public class CircleTest extends Sprite {
		private var largeCircle:MovieClip;
		private const lX:int = 200;
        private const lY:int = 200;
        private const lR:int = 300;
		
        public function CircleTest() {
        		
        		largeCircle = new DrawCircle(lX,lY,lR,0x000000,1);
        		addChild(largeCircle);
        		var timer:Timer = new Timer(1000);
				timer.addEventListener(TimerEvent.TIMER, onTimer);
				timer.start();
        }
		
		private function onTimer(e:TimerEvent):void {
			
        	var sX:int = lR * Math.random();
        	var sY:int = lR * Math.random();
        	var sR:int = lR - Math.abs((sX - lX)^2+(sY - lY)^2)
        	var smallCircle:MovieClip = new DrawCircle(sX,sY,sR,0xffffff * Math.random(),0.4+0.6*Math.random());
        	largeCircle.addChild(smallCircle);
			smallCircle.alpha = 0.0;
			Tweener.addTween(smallCircle, {
				time:1,
				alpha:1.0,
				scaleX:1.5,
				scaleY:1.5,
				transition:"easeInOutQuad"
			});
			Tweener.addTween(smallCircle, {
				time:30,
				delay:1,
				alpha:0.0,
				transition:"easeInOutQuad"
			});
			
			if (largeCircle.getChildIndex(smallCircle) > 30) {
				largeCircle.removeChildAt(0);
			}
		}
    }
}




import flash.display.MovieClip;

class DrawCircle extends MovieClip{
	public function DrawCircle(centerX:int,centerY:int,r:int,color:int,alpha:Number){
		graphics.lineStyle(10,color,alpha);
		graphics.moveTo(centerX + r,centerY);
		
		for(var i:int = 0;i<360;i++){
			var radian:Number = i * Math.PI / 180;
			graphics.lineTo(
				centerX + r * Math.cos(radian),
				centerY + r * Math.sin(radian))
		}
	}
}