waterDrop Test itsara forked:0favorite:0lines:71license : MIT License modified : 2010-08-09 16:43:39 Embed Tweet package { import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.Event; import flash.events.TimerEvent; import flash.utils.Timer; /** * ... * @author kha */ public class Main extends Sprite { public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); stageConfig(); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); // entry point //addEventListener(Event.ENTER_FRAME, onEnterfame); var timer:Timer = new Timer(100); timer.start(); timer.addEventListener(TimerEvent.TIMER, onHandler); } private function stageConfig():void { stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; stage.frameRate = 30; } private function onHandler(e:TimerEvent):void { var total:int = Math.random() * 10; for (var i:int = 0; i < total; i++) { var posX:Number = Math.random() * stage.stageWidth; var posY:Number = Math.random() * stage.stageHeight; var w:DropWaterSprite = new DropWaterSprite(posX, posY); addChild(w); } } } public class DropWaterSprite extends Sprite { private var rad:Number = 10; public function DropWaterSprite(x:Number, y:Number) { this.x = x; this.y = y; this.alpha = 0.8; rad = Math.random() * 20; addEventListener(Event.ENTER_FRAME, onEnterframe); } private function onEnterframe(e:Event):void { rad += 4; alpha -= 0.1; if (this.alpha <= 0) { removeSelf(); } drawGraphic(); } private function removeSelf():void { removeEventListener(Event.ENTER_FRAME, onEnterframe); if (this.parent.contains(this)) { this.parent.removeChild(this); } } private function drawGraphic():void { this.graphics.beginFill(0xffffff); this.graphics.lineStyle(2, 0x080808); this.graphics.drawCircle(this.x, this.y, this.rad); this.graphics.endFill(); } } } Code Fullscreen Preview Fullscreen Timer