如何让物体顺时针旋转,然后逆时针旋转AS3

时间:2015-01-11 10:14:52

标签: actionscript-3 rotation flash-cs6

嘿大家所以我想知道如何实现这一目标?我现在花了一些时间在这上面,似乎无法弄明白。我知道它缺少一些变量,但不知道从哪里开始。这是我目前在mcSpear类中所拥有的。

private function init():void 
    {
        addEventListener(Event.ENTER_FRAME, SpearLoop);
    }

    private function SpearLoop(e:Event):void 
    {
        this.rotation += 5;

        if (this.rotation >= 180)
        {
            trace("greater than 180");

            this.rotation -= 5;
        }


    }

这会顺时针旋转物体,然后当它到达if语句时它只是开始抽搐并且永远不会改变方向。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

当旋转180°时,您的代码会阻挡物体在相同位置。为什么?

因为每次object.rotation >= 180,你都会object.rotation -= 5所以它现在是175°,下一次你将object.rotation += 5设置回180°,所以你创建了一个无限循环。为避免这种情况,您可以使用Boolean var,例如,它可以指示旋转的感觉,如下所示:

var clockwise:Boolean = true;

addEventListener(Event.ENTER_FRAME, SpearLoop);

function SpearLoop(e:Event):void 
{
    if(this.rotation >= 180){ 
        clockwise = false;  // activate the counterclockwise sens 
    } else if(this.rotation <= 0){
        clockwise = true;   // activate the clockwise sens  
    }

    if (clockwise){
        this.rotation += 5;
    } else {
        this.rotation -= 5;
    }

}

希望可以提供帮助。