flash on 2009-6-14

by zsp
♥0 | Line 96 | Modified 2009-06-14 18:16:09 | MIT License
play

ActionScript3 source code

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

package {
    import flash.display.Sprite;
    import flash.events.Event;

    [SWF(width = "465", height = "465", backgroundColor = "0x000000", frameRate = "60")]
    public class FlashTest extends Sprite {
        public function FlashTest() {
            main = this;
            initialize();
            addEventListener(Event.ENTER_FRAME, update);
            
        }
    }
}
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.display.Bitmap;
    import flash.display.BitmapData;
    import flash.geom.ColorTransform;
    
    import flash.geom.Rectangle;
    import flash.geom.Point;

    const WND_W :int = 465;
    const WND_H :int = 465;
    const WND_HALF_W:int = WND_W/2;

    const BALL_SIZE:int = 20;

    var main:Sprite;
    var screen_l :BitmapData = new BitmapData(WND_W,WND_H, false, 0);
    var screen_r :BitmapData = new BitmapData(WND_HALF_W,WND_H, false, 0);

    var balls:Vector.<Ball> = new Vector.<Ball>;

    function initialize():void{
        main.addChild(new Bitmap(screen_l));

        var sl: Bitmap = new Bitmap(screen_r);
        main.addChild(sl);
        sl.x = WND_HALF_W;

        drawBackground();

        for (var i:int = 0; i<20; i++){
            var b:Ball = new Ball();
            balls.push(b);
        }
    }

    function update(e:Event): void{
        var i:int = balls.length;
        while(i--){
            balls[i].move();
        }

    }

    function drawBackground():void{
        var box_sz:int = 40;

        for(var i:int = 0; i< 500; i++){
            var x:int = Math.random()*WND_HALF_W;
            var y:int = Math.random()*WND_H;
            var c:int = Math.random()*0xFF;            
            var r:Rectangle = new Rectangle(x-box_sz/2, y-box_sz/2,box_sz,box_sz);

            screen_l.fillRect(r,c);
            screen_r.copyPixels(screen_l,new Rectangle(0,0,WND_HALF_W, WND_H), new Point(0,0), null,null,true);
        }
    }

    class Ball{
        public var x:Number;
        public var y:Number;
        public var z:Number;

        public var vx:Number;
        public var vy:Number;
        public var vz:Number;

        public var sp_l:Sprite;
        public var sp_r:Sprite;

        public function Ball(){
            sp_l = new Sprite();
            sp_l.graphics.beginFill(0xFFFFFF);
            sp_l.graphics.drawCircle(0,0,8);
            sp_l.graphics.endFill();

            sp_r = new Sprite();
            sp_r.graphics.beginFill(0xFFFFFF);
            sp_r.graphics.drawCircle(0,0,8);
            sp_r.graphics.endFill();

            main.addChild(sp_l);
            main.addChild(sp_r);
            sp_r.x = 100;

            x = 100;
            y = 100;
            z = 10;

            vx = Math.random()*6-3;
            vy = Math.random()*6-3;
            vz = Math.random()*0.3;
        }

        public function move():void{
            if(x<0 || WND_HALF_W<x) vx = -vx;
            if(y<0 || WND_H<y) vy = -vy;
            if(z<0 || 20<z) vz = -vz;

            x +=vx;
            y +=vy;
            z +=vz;


            sp_l.x = x- z;
            sp_l.y = y;
            
            sp_r.x = x+WND_HALF_W +z;
            sp_r.y = y;
        }
    }

Forked