flash on 2011-3-3

by x10der
♥0 | Line 88 | Modified 2011-03-03 00:15:29 | MIT License
play

ActionScript3 source code

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

package {
    import flash.display.Sprite;
    public class FlashTest extends Sprite {
        private var field:Sprite;
        public function FlashTest() {
            // write as3 code here..
            field = new Sprite();
            var skyDust:Dust = new Dust(this,800,600,200);
            addChild(skyDust);
        }
    }
    
}
    import flash.display.Sprite;
    import flash.events.Event;
class Dust extends Sprite
    {
        protected var targetObj:Object;
        protected var global:Object;
        public var fieldWidth:int;
        public var fieldHeight:int;
        public var points:Array = [];
        public var counter:int;
        private var oldX:int;
        private var oldY:int;
        public function Dust(gh:Object=null,w:int=50000,h:int=50000,count:int=100)
        {
            super();
            global=gh;
            fieldWidth=w;
            fieldHeight=h;
            counter=count;
        }
        public function build():void{
 
            resize();
            for(var i:int=0; i<counter; i++){
                var deep:Number = Math.random()*10;
                var pointEl:Sprite = new Sprite;
                pointEl.graphics.lineStyle(.1,0xFFFFFF);
                pointEl.graphics.drawCircle(0,0,.2);
                pointEl.x=Math.random()*fieldWidth;
                pointEl.y=Math.random()*fieldHeight;
                pointEl.alpha=1/(deep+1);
                addChild(pointEl);
                var el:Object = {
                    point:pointEl,
                    deep:deep
                };
                points.push(el);
            }
            scaleX=1;
            scaleY=1;
            oldX=Math.round(global.field.x*100)/100;
            oldY=Math.round(global.field.y*100)/100;
            addEventListener(Event.ENTER_FRAME, calc);
        }
        public function resize():void{
            width=fieldWidth;
            height=fieldHeight;
            x=-fieldWidth/2;
            y=-fieldHeight/2;
        }
        protected function calc(event:Event):void{
            var deltaX:int=(Math.round(global.field.x*100)/100)-oldX;
            var deltaY:int=(Math.round(global.field.y*100)/100)-oldY;
            if(!deltaX && !deltaY)return;
            //deltaX=deltaX/delim;
            //deltaY=deltaY/delim;
            for each(var el:Object in points){
                var dX:Number=deltaX/el.deep;
                var dY:Number=deltaY/el.deep;
                el.point.x+=dX;
                el.point.y+=dY;
                if(el.point.x>fieldWidth){
                    el.point.x=0;
                    el.point.y=Math.random()*fieldHeight;
                }else if(el.point.x<0){
                    el.point.x=fieldWidth;
                    el.point.y=Math.random()*fieldHeight;
                }
                if(el.point.y>fieldHeight){
                    el.point.y=0;
                    el.point.x=Math.random()*fieldWidth;
                }else if(el.point.y<0){
                    el.point.y=fieldHeight;
                    el.point.x=Math.random()*fieldWidth;
                }
            }
            oldX=(Math.round(global.field.x*100)/100);
            oldY=(Math.round(global.field.y*100)/100);
        }
    }