Функция Loop для воспроизведения случайного мувиклипа - PullRequest
0 голосов
/ 29 ноября 2018

Я использую 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, но я просто не могу заставить его воспроизвести видеоклип.Когда я использую это ["звезда" + myNum];он возвращается как неопознанный, но если я использую ["star" + myNum];затем он возвращается как ["star1"].Я не уверен, как получить код, чтобы скомпилировать фактическое название мувиклипа и воспроизвести его.

1 Ответ

0 голосов
/ 29 ноября 2018

Вы должны сохранить контекст в другом объекте вне функции setInterval() и использовать его внутри функции.

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

Это должно работать.

...