flash on 2009-6-19
♥0 |
Line 58 |
Modified 2009-06-19 23:25:54 |
MIT License
archived:2017-03-20 20:23:02
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;
}
}