2012-04-12 64 views
0

如何停止下一个补间动作开始,直到上一个补间在as3.0中完成播放为止?补间as3停止下一个补间发生,直到最后一个完成

我也想停止补间发生在同一个对象两次。

基本上我有一个容器(电影剪辑),其中有n个电影剪辑(排列为砖)。当我点击容器时,目标(砖)将消失(将scaleX和alpha设置为'o')。我也在跟踪关闭了多少块砖头。

但问题是如果我做快速双击补间似乎发生两次。而且伯爵似乎也增加了同样的砖块。如何解决这个问题呢。

回答

1

吐温之后吐温

使用的事件处理程序,以等待第一个补间完成,像

myTween.addEventListener(TweenEvent.MOTION_FINISH, onFinish); 

function onFinish(e:TweenEvent):void { 

     ... // Call the next tween here 

} 


双击问题

删除事件点击按钮后立即收听,例如:

my_btn.addEventListener(MouseEvent.CLICK, onClick); 

function onClick(e:MouseEvent){ 

     my_btn.removeEventListener(MouseEvent.CLICK, onClick); 

     myTween.start(); 

} 
0

你可以使用Tweener,并使用

isTweening()autoOverwrite = false来解决这个问题。

我在一段时间内没有使用过这些属性/函数,但我确定Tweener中的某些功能可以轻松地完成此操作。

0

您使用Tweener的任何原因。 Greensock的Tweenmax/lite软件包现在看起来是行业标准。

您似乎遇到的问题是您多次启动补间。如果所有块需要同时缩小,我可能会使用for循环并在它们中的每一个上运行补间。

你必须确定的事情是,一旦它被点击以删除点击事件处理程序,直到它完成,所以它不会再次被点击。

我也建议使用TweenMax/Lite,因为它有一些名为TimelineMax/Lite的地方,可以将一组补间同时或错开地混合,并侦听该时间轴对象上的一个COMPLETE事件。当该事件触发时,您可以重新激活点击或完成动画完成后需要执行的任何操作。

TimelineMax有一些不错的功能,如reverse和timeScale。

你能够粘贴一些代码吗?这也可以帮助我们帮助你。