停止();在嵌套影片剪辑中不起作用 AS3



我的时间轴上有一个影片剪辑,然后我使用经典补间在主时间轴上从一侧移动到另一侧。我不希望那个 mc 循环播放,所以一旦它里面的动画完成,它应该停止并且所有帧都应该可见,直到主时间轴上的补间完成。为了阻止它循环,我添加了带有 stop() 的新 keframe;在影片剪辑内的末尾。但它不起作用,影片剪辑不断循环。我已将主时间轴中第一帧的属性类型从影片剪辑更改为图形,以便可以在时间轴中预览影片剪辑。在以前版本的 Flash 中,它总是工作正常,但在 CC 中 stop();被忽略。我知道AS不适用于图形,但就AS在该图形中而言,这无关紧要。任何人都可以向我解释并提供一些解决方案吗?

您的动画发生在根时间轴上,因此您需要将 stop(); 放在主时间线上的最后一个关键帧上。或者在影片剪辑中创建动画并放置 stop();改为在最后一个关键帧上,并将影片剪辑放在舞台上。

试试这段代码,它可以 100% 工作

粘贴下面的代码您的主要时间线并调用MovieClip_name.stopAllClips();

MovieClip.prototype.stopAllClips = function():void {
    var mc:MovieClip = this;
    var n:int = mc.numChildren;
    mc.stop();
    for (var i:int=0; i<n; i++) {
        var clip:MovieClip = mc.getChildAt(i) as MovieClip;
        if (clip) {
            clip.stop();
            clip.stopAllClips();
        }
    } }

最新更新