flash on 2015-3-22

by mutantleg
♥0 | Line 57 | Modified 2015-03-22 06:12:44 | MIT License
play

ActionScript3 source code

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

package {
    import flash.geom.Rectangle;
    import flash.display.BitmapData;
    import flash.events.Event;
    import flash.display.Sprite;
    public class FlashTest extends Sprite {
        public function FlashTest() {
            
            drawRect(pic, 238,238, 32,32, 0xff808080);
            cx = 244;
            cy = 244;
            
          stage.addEventListener(Event.ENTER_FRAME, onEnter);  
        }//ctor
        
        public var canvas:BitmapData = new BitmapData(465,465,false,0);
        public var pic:BitmapData = new BitmapData(465,465,true,0);
       
        public var rect:Rectangle = new Rectangle();
        public function drawRect(to:BitmapData, ax:Number, ay:Number, aw:Number, ah:Number, c:uint):void
        { rect.x=ax;rect.y=ay;rect.width=aw;rect.height=ah; to.fillRect(rect, c); }
       
        public function isWall(ax:Number, ay:Number):Boolean 
        { return pic.getPixel(ax,ay) < 255; }
       
        public var cx:Number = 0;
        public var cy:Number = 0;
        public var vx:Number = 0;
        public var vy:Number = 0;
        public var gt:int = 0;
       
        public function  onEnter(e:Event):void
        {
            graphics.clear();
            graphics.lineStyle(2,0);
            
            canvas.unlock(); canvas.lock();
            
            graphics.beginBitmapFill(canvas, null, false,false);
             graphics.drawRect(0,0,465,465);
            graphics.endFill();
            
            canvas.fillRect(canvas.rect, 0);
            canvas.draw(pic);
            
            if (gt >= 1024*15) {return;}
            
            var i:int; var num:int;
            num = 64;
            
            
            for (i =0; i <num; i+=1)
            {
                gt+=1;
                vy +=0.2;
                vx += Math.random()-0.5; if (Math.random()<0.1) {vx=0;}
                if (vy > 0 && isWall(cx,cy+4)) { vy=0; if (Math.random()<0.01) {vy=(1+Math.random()*3)*-1;}}
                if (vx>8) {vx=8;} else if (vx<-8) {vx=-8;}            
                if (cx < 0) {cx=465;} if (cx>465){cx=0;}
                if (cy < 16) { cx = Math.random()*465; cy = 430; vx=0;vy=0;}
                cx += vx; cy += vy;
                
                drawRect(canvas,cx,cy,2,2,0xFFffFFff);
                
                
                drawRect(pic, cx-2,cy-3, 5, 4, 0xFF808080);
                if (Math.random()<0.01)
                { drawRect(pic, cx-8,cy-8, 16, 16, 0xFF808080); }
                if (Math.random() <0.001)
                 { cx = Math.random()*465; cy = Math.random()*300+50; vx=0;vy=0;}
                
           }//nexti
            
        }//onenter   
        
        
    }//classend
}