我在Edge中创建了一个动画,我需要播放3次然后停在特定的帧上。 我是javascript的新手,我想我需要使用变量和if / else语句,但我不确定要使用什么以及如何编写它。任何帮助将非常感激。谢谢!
答案 0 :(得分:4)
我不情愿地回复,你真的需要提供一些代码来展示你的尝试。但是,由于这是一个有用的启动问题,我将尝试回答。
您需要的第一件事是存储循环计数器的全局范围变量。将这样的内容添加到Stage.compositionComplete函数中。
// Add a numLoops variable to global storage
sym.setVariable("numLoops", 0);
接下来在动画结束时通过时间轴操作,创建一个事件来捕获该变量,增加并重播动画(如果适用),如下所示:
// capture numLoops variable and increment the counter
var numLoopsHolder = sym.getVariable("numLoops");
numLoopsHolder = numLoopsHolder + 1;
// set new numLoops variable back to global storage
sym.setVariable("numLoops", numLoopsHolder);
if (numLoopsHolder <= 2) {
// replay scene until 3 iterations are complete
sym.play(0);
}
这将循环3次,但您仍需要通过以下方式在所需的时间轴位置添加停止检查:
// capture numLoops variable to check for 3 loops (ie. 0, 1, 2 = 3 loops)
var numLoopsHolder = sym.getVariable("numLoops");
if (numLoopsHolder >= 2) {
// we've completed 3 loops now stop here
sym.stop();
}
以下是动作事件参考的时间轴的屏幕截图。