Перейти к случайному кадру, исключая текущий кадр - PullRequest
0 голосов
/ 30 сентября 2019

Вот моя проблема.

Моя основная временная шкала имеет 3 кадра. Каждый кадр содержит свой мувиклип.

Я создал кнопку, и когда пользователь нажимает эту кнопку, я хочу воспроизвести случайный мувиклип.

Но ябольше не хочу воспроизводить тот же мувиклип. Итак, когда пользователь находится в кадре 1 и нажимает кнопку, должен воспроизводиться кадр 2 или 3. Точно так же, если пользователь находится в кадре 2, должен воспроизводиться кадр 1 или 3.

Теперь я использовал этот код и почти достиг того, что хотел:

var _this = this;
_this.Play_button.on('click', function(){
_this.gotoAndStop(0+Math.random()*2);
});

Но. Много раз, нажатие на кнопку переходит к одному и тому же кадру, и это не то, что я хочу.

Может ли кто-нибудь здесь помочь мне достичь этого? Это холст HTML5, если он имеет значение.

1 Ответ

0 голосов
/ 30 сентября 2019

Будет ли это работать для вас?

var _this = this;
var _lastFrameID = -1; //set default value for last frame ID
_this.Play_button.on('click', function(){
    let frameID = -1; //set default value for current frame ID
    do {
        frameID = Math.random()* 2; //do calculation for new frame ID
    }
    while(frameID === _lastFrameID); //check if they are the same, if they are repeat calculation
    _lastFrameID = frameID; //set current frame ID to the last frame ID
    _this.gotoAndStop(frameID); //call your function with new frame ID
});
...