我正在使用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”]。我不确定如何获取代码来编译实际的动画片段名称并进行播放。
答案 0 :(得分:0)
您必须将上下文保存到setInterval()
函数外部的另一个对象中,并在函数内部使用它。
let ctx = this;
setInterval(function(){
var myNum = Math.round(Math.random() * 10) + 1;
thisMc = ctx["star" + myNum];
thisMc.play();
}, 800);
这应该有效。