Flex中2个补间动画之间的无限循环

| 我正在尝试在Flex中的2个不同的补间动作之间循环。到目前为止,我正在尝试以下操作: 在声明中:
<fx:Declarations>
    <s:Animate id=\"goRight\"
        duration=\"3000\" target=\"{nShape}\" >
        <s:SimpleMotionPath property=\"x\" valueFrom=\"0\" valueTo=\"400\" />
    </s:Animate>
</fx:Declarations>
运行动画:
var animate:Boolean = true;
var isLeft:Boolean = true;

while (animate)
{
    if (isLeft) 
    {
        goRight.play(null);
        while (goRight.isPlaying){};
    }
    else {
        goRight.play(null, true); // play it backwards
        while (goRight.isPlaying){};
    }

    isLeft = !isLeft;
}
问题在于,一旦启动动画(单击按钮),就会收到超时错误,提示脚本已运行15秒钟以上,并且没有任何补间发生。如果我只是对其动画一次,动画就可以工作。有谁知道我如何才能使补间的这种永久循环起作用?     
已邀请:
        ...您拥有3个永不中断的while循环... Flash还没有线程化,它是一种基于事件的语言。动画完成后如何使用事件检查进度或图形(应该分派完整事件)。 这不是Java。这是一种可视的,无线程的,异步的,基于框架的语言。     
        问题在这里:
while (goRight.isPlaying){};
调用
goRight.play(null);
后,上面的
while
语句将无限期地循环,因为
goRight.isPlaying
为true。 如果要证明这一点,请将以下内容添加到“ 4”循环中:
trace(\"I\'m playing\");
您需要摆脱
while
循环,并使用其他构造方法。也许事件处理程序?我不确定现在的最佳做法是什么...自从我使用补间以来已经有一段时间了,但是我知道在过去曾经有一些事件可以在何时发生补间动画结束。     

要回复问题请先登录注册