0

わかりました、私はActionscript 3を初めて使用します

タイマーの完了時 (00:00) に、ゲームをプレイしているすべての人が「ゲーム オーバー」画面に移動するようにタイマーに指示したいと考えています。現時点では、「1067: Class 型の値が無関係な型の flash.display:DisplayObject に暗黙的に強制されています」というエラーが表示されます。

何か案は?

package {

    import flash.display.MovieClip;
    import flash.utils.Timer;
    import flash.events.TimerEvent;

    public class SecondCounter extends MovieClip {

        private var myTimer:Timer=new Timer(1000,0);
        private var secs:Number=10;
        private var mins:Number=0;
        private var sec_t:String;
        private var min_t:String;
        var screen7:EndScreen;

        public function SecondCounter() {

            myTimer.addEventListener(TimerEvent.TIMER, timerHandler);
            myTimer.start();
        }

        private function timerHandler(evt:TimerEvent):void {
            if (secs==0) {
                if (mins==0) {
                    addChild(EndScreen);
                } else {
                    mins--;
                    secs=59;
                }
            } else {
                secs--;
            }
            if(secs<10){
                sec_t = "0"+String(secs) 
            } else {
                sec_t = String(secs);
            }
            if(mins<10){
                min_t = "0"+String(mins) +":"
            } else {
                min_t = String(mins)+":";
            }
            secondField.text = min_t + sec_t;
        }
    }    
}
4

1 に答える 1

2

問題は、クラスのインスタンスではなく、クラス自体を画面に追加しようとしていることです。

 var screen7:EndScreen;
 // ....
 addChild(EndScreen);

EndScreen クラスです。これは、実際の EndScreen オブジェクトを作成する方法の青写真です。Screen7 は EndScreen クラスのインスタンスです (EndScreen クラス = 設計図、screen7 インスタンス = 実際に建てられた家)。

ただし、実際には screen7 をインスタンス化していないので、次のようにします。

var screen7:EndScreen = new EndScreen();

これで、そのインスタンスをディスプレイに追加できます。

addChild(screen7);
于 2012-12-04T17:26:58.250 に答える