1

我正在使用 Adob​​e 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"] 的形式返回。我不确定如何获取代码来编译实际的电影剪辑名称并播放它。

4

1 回答 1

0

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

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

这应该有效。

于 2018-11-29T12:33:03.153 回答