2011-09-22 16 views
1

ステージにテキストを表示するためのクラスがいくつかあります。それはかなりうまく動作しますが、私はこの私のクラスにはタイミングの問題があります

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); 
      } 
     } 
    } 
} 

ありがとうございました。

答えて

1

y = 0 - waitingFor * 60;yの最後のMesagerは大きなマイナス数ですか? waitingForをトレースしようとしましたか?

+0

問題が見つかりました。ありがとうございます! – apscience

+0

あなたは本当にyの問題を抱えていましたか? – Eugeny89

関連する問題