错误#1009闪现,无法弄明白

时间:2012-11-22 19:26:20

标签: actionscript-3 error-handling

我正在忙着编写一个游戏,但我已经陷入困境。

我之前能够让游戏完美运行,但突然间它停止了工作。

以下是给出错误的脚本部分:

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()

提前致谢, 雷米

1 个答案:

答案 0 :(得分:2)

错误意味着您正在尝试访问属性,但该对象尚未定向/不存在/当前为空。

我不是100%确定你在main()中使用的哪个类可能没有准备好,但是一个非常常见的是舞台,它是一个空对象,显示对象已添加到舞台中。 在这种情况下,在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);
}