flash图片旋转效果的AS代码

原来的代码是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的值,那么相应的这里也需要修改。


 

你可能感兴趣的:(Flash)