我需要创建一个名为Swing的动画,只有当玩家点击空格键时才会进行一次。我的播放器标记了时间线,其中每个标签都是从AC3调用的,并且用新的标签交换当前标签,我面临的问题是我只需要使用mc一次,一旦完成它就会返回到空闲标签。我试图检查当前帧但它是'1'而没有增加,也使用了所有解决方案:
stopping on the last frame (flash)
没有运气。因为我没有处理一个实际的mc,我正在处理一个框架,框架内部是一个mc。
更多插图:
http://i.imgur.com/CIoZu9l.png
有什么想法吗?
答案 0 :(得分:2)
因此,我从您的图片中看到,您实际上需要检查player.totoswing.currentFrame
的帧,但在此之前请确保播放器中存在totoswing
MovieClip。如果玩家的currentFrame
不是5,则可能不存在。
因此,要检查动画的当前帧,请执行以下操作:
if(player.totoswing)
trace(player.totoswing.currentFrame);
如果你想在最后一帧停止它,你可以在totoswing MovieClip的最后一帧添加stop()
scirpt。
如果您想知道totoswing动画何时结束,您可以执行以下操作:
if(player.totoswing)
{
player.totoswing.addEventListener(Event.ENTER_FRAME, onTotoSwingFrame);
player.totoswing.play();
}
function onTotoSwingFrame(e:Event):void
{
if(e.target.currentFrame == e.target.totalFrames)
{
//animation has ended
e.target.removeEventListener(Event.ENTER_FRAME, onToToSwingFrame);
// do whatever you want. ex. play the idle state
}
}
我们首先在ENTER_FRAME
MovieClip的player.totoswing
事件中添加一个侦听器,以便每当它前进一帧时触发一个事件。在事件处理程序(onTotoSwingFrame
)中,我们检查player.totoswing
当前帧是否等于其总帧数,如果是,我们停止播放,我们知道动画已经完成。我们不再需要ENTER_FRAME
侦听器,因此我们将其删除。