Попробуйте использовать addFrameScript
из вашего основного класса:
asset.addFrameScript( asset.totalFrames-1, function():void { attack = 0; } );
Немного уточнив, как работает addFrameScript()
, всякий раз, когда вы компилируете MovieClip
из своей библиотеки, если вы не связываете с ним класс, компилятор создает его для вас за кулисами. addFrameScript()
— это недокументированная связь между временной шкалой MovieClips и связанным сценарием. Когда вы запускаете addFrameScript()
на MovieClip
, вы устанавливаете его с параметрами ( frameNumber - 1, functionToCall )
. Ваша временная шкала MovieClip начинается с кадра 1, но на самом деле это читается как кадр 0 при ссылке (аналогично тому, как контейнеры хранения работают, начиная с индекса 0).
В моем примере я передал так называемую анонимную функцию. Я создал функцию для параметра функции в addFrameScript()
, которая установит переменную атаки на 0, когда мы достигнем указанного кадра. Конечно, вы не должны делать это таким образом. Скажем, у вас была функция:
function setAttackToZero():void {
attack = 0;
}
Вы можете так же легко передать это в параметр addFrameScript:
asset.addFrameScript( asset.totalFrames-1, setAttackToZero );
person
Bennett Yeates
schedule
26.01.2014