多物体旋转

文档类

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

import flash.events.MouseEvent;

/**
* ...
* @author zkl
*/
public class Rotate extends Sprite {
private var balls:Array;
private var numBalls:Number = 10;
private var radius:Number = 100;
private var colors:Array=[0xFF0000,0x00FF00,0x0000FF,0x33CC00,0x9900FF,0xCC6600]

public function Rotate(){
init();
}

private function init():void {
//弧度(360 / numBalls * Math.PI / 180)
var an:Number = 2 / numBalls * Math.PI;
balls = new Array;
for (var i:int = 0; i < numBalls; i++){
var ball:Ball = new Ball(20,colors[int(Math.random()*numBalls)]);
balls.push(ball);
addChild(ball);
//以中心为圆心,排列
ball.x = Math.cos(an * i) * radius + stage.stageWidth / 2;
ball.y = Math.sin(an * i) * radius + stage.stageHeight / 2;
ball.addEventListener(MouseEvent.MOUSE_OVER, mouseHandler);
}
addEventListener(Event.ENTER_FRAME, enterFrame);
}

private function enterFrame(e:Event):void {
var angle:Number = (mouseX - stage.stageWidth / 2) * .001;
var cos:Number = Math.cos(angle);
var sin:Number = Math.sin(angle);
for (var i:int = 0; i < numBalls; i++){
var ball:Ball = balls[i];
var x1:Number = ball.x - stage.stageWidth / 2;
var y1:Number = ball.y - stage.stageHeight / 2;
var x2:Number = cos * x1 - sin * y1;
var y2:Number = cos * y1 + sin * x1;
ball.x = stage.stageWidth / 2 + x2;
ball.y = stage.stageHeight / 2 + y2;
}
}

private function mouseHandler(e:MouseEvent):void {
switch (e.type){
case MouseEvent.MOUSE_OVER:
removeEventListener(Event.ENTER_FRAME, enterFrame);
e.target.addEventListener(MouseEvent.MOUSE_OUT, mouseHandler);
break;
case MouseEvent.MOUSE_OUT:
addEventListener(Event.ENTER_FRAME, enterFrame);
e.target.removeEventListener(MouseEvent.MOUSE_OUT, mouseHandler);
break;
}
}


}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值