在舞台上停止所有动画

时间:2017-10-23 14:39:48

标签: javascript animation adobe-animate

我正在使用Animate CC 2017来创建HTML横幅动画。

经过一段时间,我喜欢停止动画。 以下代码停止主时间轴:

setTimeout(function(){
    stage.getChildAt(0).gotoAndStop(90);
}, 1000);

但如果主时间轴中还有其他动画片段动画,则会继续播放。

我试过这个来阻止他们:

    setTimeout(function(){
    stage.getChildAt(0).gotoAndStop(90);
    for (var i=0; i<stage.getChildAt(0).numChildren; i++){
        stage.getChildAt(0).getChildAt(i).stop(); 
    };
}, 1000);

但这不起作用。

此外,我已尝试按名称选择某个动画片段。也没有运气。

有没有人能解决这个问题? 谢谢。

1 个答案:

答案 0 :(得分:0)

好的,我已经解决了这个问题!

问题是,并非时间轴中的每个对象都有动画,因此他们没有&#34; gotoAndStop&#34;作为一个功能。所以我需要检查循环中的每个对象是否都具有该功能。下面的代码工作完美!

    setTimeout(function(){
    stage.getChildAt(0).gotoAndStop(90);
    for (var i = 0; i < stage.getChildAt(0).numChildren; i++){
        if(typeof stage.getChildAt(0).getChildAt(i).gotoAndStop === 'function'){
            stage.getChildAt(0).getChildAt(i).gotoAndStop(10);
            }
        };
    }, 1000);