0

私はゲームのプログラミングで忙しいのですが、何かに行き詰まってしまいました。

以前はゲームを完全に機能させることができましたが、突然機能しなくなりました。

エラーが発生しているスクリプトの部分は次のとおりです。

var colorTransform:ColorTransform;
        var player:MovieClip;
        var kaas:MovieClip;
        var ground:MovieClip;
        var speed:Number;
        var right:Boolean = false;
        var left:Boolean = false;
        var up:Boolean = false;
        var down:Boolean = false;
        var isWalking:Boolean = false;
        var isJumping:Boolean = false;
        var jumpSpeedLimit:int = 14;
        var jumpSpeed:Number = jumpSpeedLimit;
        // END

        public function main() 
        {
            speed = 5;
            kaas = new Kaas();
            kaas.y = 300;
            kaas.x = 300;
            addChild(kaas);
            ground = new Ground();
            ground.y = stage.stageHeight;
            ground.x = stage.stageWidth / 2;
            addChild(ground);
            player = new Player();
            player.x = stage.stageWidth / 2 - player.width;
            player.y = stage.stageHeight - 45;
            player.width = 50;
            player.height = 50;
            addChild(player);
            player.gotoAndStop("idle");
            //event listeners.
            stage.addEventListener(KeyboardEvent.KEY_UP, keyupCheck);
            stage.addEventListener(KeyboardEvent.KEY_DOWN, keydownCheck);
            player.addEventListener(Event.ENTER_FRAME, movePlayer);
        }

誰かが私を助けてくれることを願っています。

これは私が受け取るエラーメッセージです:

typeerror error #1009 cannot access a property or method of a null object reference.at main()

よろしくお願いします、レミー

4

1 に答える 1

2

エラーは、プロパティにアクセスしようとしているが、そのオブジェクトがインスタンス化されていない/存在しない/現在nullであることを意味します。

main()で使用するクラスのどれが準備ができていないかは100%わかりませんが、非常に一般的なのはステージです。これは、表示オブジェクトがステージに追加されたnullオブジェクトです。この場合、main()の最後の部分で次のようなことを試してください。

 //event listeners.
this.addEventListener(Event.ADDED_TO_STAGE,stageReady);
}
private function stageReady(event:Event):void{
            stage.addEventListener(KeyboardEvent.KEY_UP, keyupCheck);
            stage.addEventListener(KeyboardEvent.KEY_DOWN, keydownCheck);
            player.addEventListener(Event.ENTER_FRAME, movePlayer);
}
于 2012-11-22T19:36:56.497 に答える