Actionscript 3 在actionscript 3.0中获取要随机旋转的对象
我做了大部分的事情,让球围绕一个中心点旋转。我所需要的只是让球从一个随机生成的点开始旋转,而不是沿着同一条线一起旋转。这是我的密码。谢谢Actionscript 3 在actionscript 3.0中获取要随机旋转的对象,actionscript-3,Actionscript 3,我做了大部分的事情,让球围绕一个中心点旋转。我所需要的只是让球从一个随机生成的点开始旋转,而不是沿着同一条线一起旋转。这是我的密码。谢谢 import flash.display.Sprite; var ball1 : Sprite = new ballMC(); var ball2 : Sprite = new ballMC(); var ball3 : Sprite = new ballMC(); var ball4 : Sprite = new ballMC(); var centreb
import flash.display.Sprite;
var ball1 : Sprite = new ballMC();
var ball2 : Sprite = new ballMC();
var ball3 : Sprite = new ballMC();
var ball4 : Sprite = new ballMC();
var centreball : Sprite = new ballMC();
var centerX:Number = stage.stageWidth / 2;
var centerY:Number = stage.stageHeight / 2;
var radius:Number;
var speed:Number = 0.09 ;
var angle:Number = 0;
var rand1:Number = (Math.round(Math.random()*(1 + 100-50))+50);
var rand2:Number = (Math.round(Math.random()*(1 + 100-50))+50);
var rand3:Number = (Math.round(Math.random()*(1 + 100-50))+50);
var rand4:Number = (Math.round(Math.random()*(1 + 100-50))+50);
var reversebutt:butttonreverse = new butttonreverse();
var orbitoryDirection:String = "forward";
init();
function init():void
{
addChild(ball1);
addChild(ball2);
addChild(ball3);
addChild(ball4);
addChild(reversebutt);
addChild(centreball);
centreball.x = stage.stageWidth / 2;
centreball.y = stage.stageHeight / 2;
radius = (Math.round(Math.random()*(1 + 200-50))+50);
addEventListener(Event.ENTER_FRAME, circleit);
reversebutt.addEventListener(MouseEvent.CLICK,differentdir);
}
function circleit(e:Event):void
{
ball1.x = centerX + Math.cos(angle) * (radius + rand1);
ball1.y = centerY + Math.sin(angle) * (radius + rand1);
ball2.x = centerX + Math.cos(angle) * (radius + rand2);
ball2.y = centerY + Math.sin(angle) * (radius - rand2);
ball3.x = centerX + Math.cos(angle) * (radius - rand3);
ball3.y = centerY + Math.sin(angle) * (radius - rand3);
ball4.x = centerX + Math.cos(angle) * (radius - rand4);
ball4.y = centerY + Math.sin(angle) * (radius - rand4);
reversebutt.x = centerX + (centerX / 2) ;
reversebutt.y = centerY + (centerY / 2 ) ;
reversebutt.name = "1";
if (orbitoryDirection == "forward")
{
angle += speed;
}
else
{
angle -= speed;
}
}
function differentdir(event:MouseEvent):void
{
if (event.target.name == "1")
{
if (orbitoryDirection == "forward")
{
orbitoryDirection = "backwards";
}
else
{
orbitoryDirection = "forward";
}
}
}
最好使用类而不是时间线编码。。。无论如何,您应该创建4个角度变量,因为有4个球,给它们随机初始值,就这样,您就完成了。
e、 g:
嘿,伙计们,我自己就知道怎么做了。在circleit函数中,我只是随机将角度cos和sin角除以不同的值。它起作用了。我还在想这是不是正确的方法。
var angle1:Number = Math.random()*360;
var angle2:Number = Math.random()*360;
var angle3:Number = Math.random()*360;
var angle4:Number = Math.random()*360;
function circleit(e:Event):void
{
ball1.x = centerX + Math.cos(angle1) * (radius + rand1);
ball1.y = centerY + Math.sin(angle1) * (radius + rand1);
ball2.x = centerX + Math.cos(angle2) * (radius + rand2);
ball2.y = centerY + Math.sin(angle2) * (radius - rand2);
ball3.x = centerX + Math.cos(angle3) * (radius - rand3);
ball3.y = centerY + Math.sin(angle3) * (radius - rand3);
ball4.x = centerX + Math.cos(angle4) * (radius - rand4);
ball4.y = centerY + Math.sin(angle4) * (radius - rand4);
reversebutt.x = centerX + (centerX / 2) ;
reversebutt.y = centerY + (centerY / 2 ) ;
reversebutt.name = "1";
if (orbitoryDirection == "forward")
{
angle += speed;
}
else
{
angle -= speed;
}
}