循环功能可播放随机的动画片段

时间:2018-11-29 11:42:40

标签: canvas html5-canvas adobe-animate

我正在使用Adobe Animate创建一个简单的HTML5 Canvas动画,该动画具有在背景中随机设置动画的星星。我有10颗名为star1-star10的星星,因为我只希望其中10颗在特定位置玩。我一直在尝试创建一个将循环播放的函数,从1-10中选择一个随机数,然后播放该动画片段。

这是我当前的代码:

setInterval(function(){
    var myNum = Math.round(Math.random() * 10) + 1;
    thisMc = this["star" + myNum];
    thisMc.play();
}, 800);

该函数正在循环,并且在1-10之间选择一个随机数,但是我不能让它播放动画片段。当我使用this [“ star” + myNum];它以未知身份返回,但是如果我使用[“ star” + myNum];然后返回为[“ star1”]。我不确定如何获取代码来编译实际的动画片段名称并进行播放。

1 个答案:

答案 0 :(得分:0)

您必须将上下文保存到setInterval()函数外部的另一个对象中,并在函数内部使用它。

let ctx = this;
setInterval(function(){
    var myNum = Math.round(Math.random() * 10) + 1;
    thisMc = ctx["star" + myNum];
    thisMc.play();
}, 800);

这应该有效。