Воспроизведение последовательности данных кадров с использованием ActionScript3 Flash - PullRequest
0 голосов
/ 18 декабря 2018

Я начинающий с Flash и ActionScript 3 У меня есть 8 губных кодов для персонажа, которые я создал в разных кадрах, поэтому я хочу воспроизводить анимацию по кадрам, но с другим порядком, чтобы сформировать фразу, которую мой персонаж будетговорят, что я попробовал это сам, но мне не удалось:

    stop();

var tableau = new Array(); 
tableau[0]=2;
tableau[1]=4;
tableau[2]=1;
tableau[3]=7;
tableau[4]=8;
tableau[5]=1;
tableau[6]=7;

for(var i =0;i<tableau.length;i++){
    trace(tableau[i]==this.currentFrame);
    if(tableau[i]==this.currentFrame){
        gotoAndPlay(tableau[i]);
        trace(this.currentFrame);
    }
}

1 Ответ

0 голосов
/ 18 декабря 2018

Все довольно просто.Вам нужно подписаться на специальное событие, которое запускается один раз за кадр, и перемещать точку воспроизведения один раз за кадр в соответствии с планом.

stop();

var Frames:Array;

// This will prevent things from overlapping
// if one of the frames on the list is the
// current one and playhead will hit here
// once again (and try to execute code).
if (Frames == null)
{
    Frames = [2,4,1,7,8,1,7];
    addEventListener(Event.ENTER_FRAME, onFrame);
}

function onFrame(e:Event):void
{
    // Get the next frame index and remove it from the list.
    var aFrame:int = Frames.shift();

    // If there are no more frames to show,
    // unsubscribe from the event.
    if (Frames.length < 1)
    {
        removeEventListener(Event.ENTER_FRAME, onFrame);
    }

    gotoAndStop(aFrame);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...