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;
    }
}