flash on 2009-6-19

by katsumi
♥0 | Line 58 | Modified 2009-06-19 23:25:54 | MIT License
play

ActionScript3 source code

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

package {
    import flash.display.*;
    import flash.events.*
    public class FlashTest extends Sprite {
        public var mc:Array;
        public var mcNum:int;
        public var p:Point3D;
        public var op:Point3D;
        public var screenZ:Number;
        
        private var SW:Number;
        private var SH:Number;
        private var theta:Number;
        public function FlashTest() {
            // write as3 code here..
            mcNum=5;
            mc=new Array();
            SW = this.stage.stageWidth;
            SH = this.stage.stageHeight;
            
            for(var i:int=0;i<mcNum;i++){
                mc.push(new Sprite());
                mc[i].graphics.clear();
                mc[i].graphics.lineStyle(0,0,0);
                mc[i].graphics.beginFill(0xff00ff);
                mc[i].graphics.drawRect(-50,-50,100,100);
                mc[i].graphics.endFill();
                mc[i].graphics.beginFill(0xcccccc);
                mc[i].graphics.drawCircle(-25,-25,10);
                mc[i].graphics.endFill();
                this.addChild(mc[i]);
            }
            screenZ=100;
            p=new Point3D(SW/2,SH/2,100);
            op=new Point3D(SW/2,SH/2,300);
            
            theta=0;
            addEventListener(Event.ENTER_FRAME, enterFrameHandler);
         }
         
         private function enterFrameHandler(e:Event):void {
             for(var i:int=0;i<mc.length;i++){
                 p.y=op.y+200*Math.cos(theta+2*Math.PI/mc.length*i);
                 p.z=op.z+200*Math.sin(theta+2*Math.PI/mc.length*i);
                 mc[i].scaleX = mc[i].scaleY = screenZ/p.z;
                 mc[i].y=p.y;
                 mc[i].x=p.x;
             }
             theta+=0.03;
         }
    }
    
}

     internal class Point3D 
     {
         public var x:Number = 0;
         public var y:Number = 0;
         public var z:Number = 0;
         
         public function Point3D(x:Number = 0, y:Number = 0, z:Number = 0) {
             this.x = x;
             this.y = y;
             this.z = z;
         }
     }
         

Forked