У меня есть класс, который я использую для отображения текста на сцене, с некоторыми числовыми эффектами. Это работает довольно хорошо, но когда я цепью это так
public function onAdd(e:Event) {
//stuff
addChild(new messager("Welcome."));
addChild(new messager("WASD to move, mouse to shoot."));
addChild(new messager("Kill zombies for XP and collect ammo boxes.",waveOne));
}
public function waveOne(){
addChild(new messager("Good luck and have fun.",newWave));
}
Текст (удачи и веселья) не отображается, но вызывается newWave. Причина, по которой я не вызываю waveOne в onAdd, заключается в том, что это не происходит слишком быстро - мой класс просто выбрасывает текст на пользователя один раз каждые 50 кадров (что предназначено для последующего использования, когда вы убиваете врагов и текст требует наверстать упущенное).
Вот мой класс (со снятыми эффектами):
package {
import flash.display.MovieClip;
import flash.events.*;
import flash.utils.Timer;
public class Messager extends MovieClip{
var actualText:String;
var callback:Function;
var upTo:int = 0;
static var waitingFor:int = 0;
public function Messager(text:String,callback:Function=null) {
this.callback = callback;
actualText = text;
x = 320 - actualText.length * 6.5;
y = 0 - waitingFor * 60;
addEventListener(Event.ENTER_FRAME, onEnterFrame);
waitingFor++;
}
public function onEnterFrame(e:Event) {
y+= 1;
if(y > 60){
waitingFor--;
}
if(y > 200){
alpha -= 0.03;
if(alpha <= 0){
if(callback != null){
callback();
}
removeEventListener(Event.ENTER_FRAME, onEntFrm);
this.parent.removeChild(this);
}
}
}
}
Он установлен для связи с мувиклипом с текстовым полем.
Спасибо за любую помощь.