0

「ゲームオーバー」画面に問題があります。私はクラスを使用していて、かなり新しいクラスです。これが私が得るエラーです:

TypeError:エラー#1009:nullオブジェクト参照のプロパティまたはメソッドにアクセスできません。DocumentClass / onAvatarDeath()at flash.events :: EventDispatcher / flash.events:EventDispatcher :: dispatchEventFunction()at flash.events :: EventDispatcher / dispatchEvent()at MethodInfo-31()

これは:onAvatarDeath()内のメソッドです。DocumentClass

public function onAvatarDeath( avatarEvent:AvatarEvent ):void
{
    var travelScore:Number = playScreen.getTravelScore();
    var coinScore:Number = playScreen.getCoinScore();
    gameOverScreen = new GameOverScreen();
    gameOverScreen.addEventListener( NavigationEvent.RESTART, onRequestRestart );
    gameOverScreen.x = 275;
    gameOverScreen.y = 125;
    gameOverScreen.setTravelScore( travelScore );
    gameOverScreen.setCoinScore( coinScore );
    addChild( gameOverScreen );

    playScreen = null;
}

私のメニュー画面はほとんど同じように機能し、正常に機能します。トレースするplayScreennull、それは問題ありません。しかし、〜ゲームオーバー〜画面をトレースしてもトレースされません...何か助けはありますか?道に迷いました。

4

1 に答える 1

0

ファイルを確認すると、プレイヤーが死亡した後もゲームは実行され続けます (具体的にavatarEnterFrameは、呼び出され続けます)。これは、onAvatarDeathが何度も実行されることを意味しますが、最初に null を設定したため、またはplayScreenを実行しようとしたときに Flash がそれを見つけることができません。getTravelScoregetCoinScore

私は通常var isGameRunning:Boolean = false;、ゲームの開始時またはプレーヤーの死亡時 (または勝利時) に更新し続けるような変数を持っておりif (gameRunning)avatarEnterFrame.

ENTER_FRAME別の方法として、プレイヤーが死亡したときにリスナーを削除することもできますavatar(ただし、プレイヤーがゲームを再開したときに再度追加することを忘れないでください)。

于 2013-01-18T00:26:56.180 に答える