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

时间:2015-01-13 17:30:19

标签: actionscript-3 flash

我的时间轴上有一个影片剪辑,然后我使用经典补间从一侧到另一侧在主时间轴上移动。我不希望mc循环所以一旦它内部的动画完成它应该停止并且所有帧应该是可见的,直到主时间轴上的补间结束。为了阻止它循环,我添加了一个带有stop()的新keframe;在影片剪辑的最后。但它不起作用,影片剪辑不断循环。我已将主时间轴中第一帧的属性类型从movieclip更改为Graphic,以便我可以在时间轴中预览影片剪辑。在以前的Flash版本中,它总是很好,但在CC中,stop();被忽略了。 我知道AS不能与Graphics一起使用,但是AS内部的Graphic应该不重要。有人可以向我解释并提供一些解决方案吗?

2 个答案:

答案 0 :(得分:2)

你的动画发生在根时间轴上,所以你需要把你的stop();在主时间线的最后一个关键帧上。或者在movieclip中创建动画并放置stop();在那里的最后一个关键帧上,将影片剪辑放在舞台上。

答案 1 :(得分:0)

尝试使用此代码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();
        }
    } }