【问题标题】:AS3 Pausing child movie clips on separate frames in parentAS3 在父级的不同帧上暂停子影片剪辑
【发布时间】:2013-03-01 20:45:47
【问题描述】:

关于在父项中暂停和恢复子影片剪辑的快速问题。我的父影片剪辑在第 1、2 和 3 帧内有 3 个其他子影片剪辑(每个都有自己不同的动画),当情况出现时,它们将在 .as 文件中调用。

但是,在暂停父影片剪辑时,我希望能够返回到当前所在的子影片剪辑的同一帧。例如,Parent 在第 2 帧,第 2 帧的子在其自己的动画的第 15 帧上,当恢复时,Parent 影片剪辑将停留在第 2 帧,而孩子将从第 15 帧开始。

目前我唯一能想到的就是有两个变量,一个保存当前父框架,第二个保存子当前框架,然后在恢复时,转到父框架,然后是 'child'.goto andplay(子框架)。但是,这会要求每个孩子都具有相同的实例名称吗?

【问题讨论】:

    标签: actionscript-3 flash animation movieclip


    【解决方案1】:

    没有看到您的确切设置,我相信您想要的是递归暂停和恢复:

    function recursivePause(clip:MovieClip):void
    {
        var len:int = clip.numChildren;
        clip.stop();
        for(var i:int = 0; i < len; i++)
        {
            if(clip.getChildAt(i) is MovieClip)
            {
                recursivePause(clip.getChildAt(i) as MovieClip);
            }
        }
    }
    
    function recursiveResume(clip:MovieClip):void 
    {
        var len:int = clip.numChildren;
        for(var i:int = 0; i < len; i++)
        {
            if(clip.getChildAt(i) is MovieClip)
            {
                recursiveResume(clip.getChildAt(i) as MovieClip);
            }
        }
        clip.play();
    }
    

    【讨论】:

    • 目前我在我的 GameContainer 剪辑中运行了类似的东西,其中包含其他所有内容。我将需要暂停的任何剪辑推送到 Pause_array 中,然后将暂停命令传递给存储在其中的每个剪辑。我遇到的问题更多的是我不知道在单独的帧上暂停剪辑是如何工作的。似乎只要我告诉父剪辑首先转到正确的帧并为子剪辑使用正确的实例名称,现在恢复按计划工作
    猜你喜欢
    • 2012-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多