原来的代码是AS2的,我现在改成AS3了,你新建一个AS3的FLA,把下列代码贴到第一帧的代码栏中。
首先将元件为ActionScript导出,过程如下:
右键点击库中的元件 - 属性 - 高级 - 勾选为ActionScript导出 - 设置自己的类名(比如MyMovieClip) - 确定(如图所示)
然后在代码栏中写入:
var myMC:MyMovieClip = new MyMovieClip();
this.addChild(myMC);
注意,myMC默认的x坐标和y坐标都为0,需要自己设定myMC.x和myMC.y的值。
var ellipse_short:Number = 40;
var ellipse_long:Number = 400;
var rectWidth:Number = 80;
var rectHeight:Number = 100;
var zeroX:Number = stage.stageWidth / 2;
var zeroY:Number = stage.stageHeight / 2;
var speed:Number = 0.01;
var num:Number = 6;//方块的数量
var arr:Array = new Array();
drawMC();
insterMC();
this.addEventListener(Event.ENTER_FRAME,onEnterFrameHandler);
function drawMC():void {
for (var i:int=0; i<num; i++) {
var board:Sprite = new Sprite();
with (board.graphics) {
beginFill(Math.random()*(0xFFFFFF - 1));
drawRect(0,0,rectWidth,rectHeight);
endFill();
}
this.addChildAt(board,0);
var obj:Object = new Object();
obj.mc = board;
obj.angle = i * 360 / num;
arr.push(obj);
}
}
function insterMC():void {//在此方法中向方块添加内容
var mc_0:MyMC_0 = new MyMC_0();
arr[0].mc.addChild(mc_0);
var mc_1:MyMC_1 = new MyMC_1();
arr[1].mc.addChild(mc_1);
var mc_2:MyMC_2 = new MyMC_2();
arr[2].mc.addChild(mc_2);
var mc_3:MyMC_3 = new MyMC_3();
arr[3].mc.addChild(mc_3);
var mc_4:MyMC_4 = new MyMC_4();
arr[4].mc.addChild(mc_4);
var mc_5:MyMC_5 = new MyMC_5();
arr[5].mc.addChild(mc_5);
}
function onEnterFrameHandler(e:Event) {
for (var i:int = 0; i < arr.length; i++) {
arr[i].mc.x = ellipse_long * Math.cos(arr[i].angle * Math.PI / 180) + zeroX;
arr[i].mc.y = ellipse_short * Math.sin(arr[i].angle * Math.PI / 180) + zeroY;
arr[i].mc.alpha = Math.sin(arr[i].angle * Math.PI / 180) + 1.2;
arr[i].mc.scaleX = (1 - Math.abs(Math.cos(arr[i].angle * Math.PI / 180)));
arr[i].angle += speed * (stage.mouseX - zeroX);
}
}
注意一下insterMC这个方法中的代码,这里是用来向方块中添加你的影片剪辑的地方。首先你需要把需要添加的MC为ActionSript导出,类名依次命名为MyMC_0,MyMC_1,……如果你改变了num的值,那么相应的这里也需要修改。