Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 检测标记时间线内的当前帧_Actionscript 3_Flash_Actionscript - Fatal编程技术网

Actionscript 3 检测标记时间线内的当前帧

Actionscript 3 检测标记时间线内的当前帧,actionscript-3,flash,actionscript,Actionscript 3,Flash,Actionscript,我需要制作一个名为Swing的动画,当玩家点击空格键或其他东西时,它只会执行一次。我的播放器已经标记了时间线,其中每个标签都是从AC3调用的,并用新标签交换当前标签,我面临的问题是我只需要使用mc一次,一旦完成,它就会返回空闲标签。我试图检查currentframe,但它是“1”,并且没有增加,在这里也使用了所有解决方案: 一点运气都没有。因为我不是在处理一个实际的mc,我是在处理一个框架,框架内是一个mc 更多说明: 有什么想法吗?所以我从你的图片中看到,你实际上需要检查player.to

我需要制作一个名为Swing的动画,当玩家点击空格键或其他东西时,它只会执行一次。我的播放器已经标记了时间线,其中每个标签都是从AC3调用的,并用新标签交换当前标签,我面临的问题是我只需要使用mc一次,一旦完成,它就会返回空闲标签。我试图检查currentframe,但它是“1”,并且没有增加,在这里也使用了所有解决方案:

一点运气都没有。因为我不是在处理一个实际的mc,我是在处理一个框架,框架内是一个mc

更多说明:


有什么想法吗?

所以我从你的图片中看到,你实际上需要检查
player.totoswing.currentFrame
的框架,但在你这样做之前,请确保
tototoswing
电影剪辑存在于播放器中。如果播放机的
currentFrame
不是5,则它可能不存在

因此,要检查动画的当前帧,请执行以下操作:

if(player.totoswing)
    trace(player.totoswing.currentFrame);
如果要在最后一帧停止播放,可以在ToToToSwing MovieClip的最后一帧上添加一个
stop()
scirpt

如果您想知道ToToToSwing动画何时结束,可以执行以下操作:

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

我们首先向
player.totoswing
MovieClip的
ENTER\u FRAME
事件添加一个监听器,以便它每次推进一帧时都触发一个事件。在事件处理程序(
ontoswingframe
)中,我们检查
player.tooswing
当前帧是否等于其总帧,如果等于,我们停止播放,我们知道动画已经完成。我们不再需要一个
ENTER\u FRAME
监听器,所以我们将其删除。

currentFrame指的是放置此代码的MC的帧数,而不是动画中实际MC的帧数。尝试player.currentFrame(或任何与动画相关的对象)将不会像我提到的那样工作,请参见:如果我使用player.currentFrame,我将得到5。如果我做了totoswing,我将得到一个未定义的对象错误。谢谢,我不知道我可以在currentFrame之前添加“player.ToToToSwing”,现在一切对我都很好:)太好了!您可以使用点(.)操作符访问嵌套的
DisplayObjects
和任何属性。