我班上有一些时间问题

时间:2011-09-22 08:02:11

标签: actionscript-3

我有一个用于在舞台上显示文本的类,带有一些数字效果。它工作得很好,但当我像这样链接它

    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。我之所以不在onAdd中调用waveOne,是因为它不会发生太快 - 我的课程每隔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);
            }
        }
    }
}

设置为与具有文本字段的动画片段链接。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

y = 0 - waitingFor * 60;上次y的{​​{1}}可能是一个很大的负数?您是否尝试追踪Mesager