Actionscript 3 我的构造函数中出现AS3错误#1009?

Actionscript 3 我的构造函数中出现AS3错误#1009?,actionscript-3,debugging,null,Actionscript 3,Debugging,Null,所以我正在做一个2d平台游戏,我得到了1009分 在我的Pickup()类中,在构造函数中,我试图将this.x和this.y设置为中心stage,但它表示stage是null对象引用 public function Pickup() { // constructor code bitmapData.draw(_displayObject); mSprite = new Bitmap(bitmapData); addChil

所以我正在做一个2d平台游戏,我得到了1009分

在我的Pickup()类中,在构造函数中,我试图将this.x和this.y设置为中心stage,但它表示stage是null对象引用

public function Pickup() {
        // constructor code
        bitmapData.draw(_displayObject);    
        mSprite = new Bitmap(bitmapData);
        addChild(mSprite);
        this.x = 
        stage.width/2;
}
我把this.x和stage.width分开,看看是哪个部分触发了空值,这肯定是stage

这可能是一件非常明显的事情,我会因为没有注意到它而痛打自己

无论如何,我们非常感谢您的帮助


干杯

添加一个添加到舞台的事件侦听器

public function Pickup() {
   // constructor code
   bitmapData.draw(_displayObject);
   mSprite = new Bitmap(bitmapData);
   addChild(mSprite);
   this.addEventListener(Event.ADDED_TO_STAGE, onAddToStage);
 }

protected function onAddToStage(event:Event):void
{
     this.x = stage.width/2;
}

任何DisplayObject上的
stage
属性都是
null
,除非它实际在stage上

这意味着您需要向侦听的对象添加事件侦听器,然后使用处理程序中的
阶段

或者,您也可以将对阶段的引用传递给拾取的构造函数:

public function Pickup(stage:Stage)
{
    // Your code.
}

您是如何将
this.x
stage.width
分开的?我只是按Enter键将它们放在单独的行上,看看哪一行触发了错误,我现在看到的实际上是调用错误的stage.width。问题已更改。等待添加到舞台的事件。