我的构造函数中的AS3错误#1009?

时间:2013-06-20 13:22:59

标签: actionscript-3 debugging null

所以我正在开发一款2D平台游戏,而且我得到的是#1009。

在我的Pickup()类中,在构造函数中,我正在尝试将this.x和this.y设置为中心阶段,但是它将阶段称为空对象引用。

public function Pickup() {
        // constructor code
        bitmapData.draw(_displayObject);    
        mSprite = new Bitmap(bitmapData);
        addChild(mSprite);
        this.x = 
        stage.width/2;
}

我将this.x与stage.width分开,看看哪个部分触发了null,这绝对是舞台。

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

无论如何,非常感谢任何帮助。

干杯

2 个答案:

答案 0 :(得分:0)

添加添加到舞台

的事件侦听器
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;
}

答案 1 :(得分:0)

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

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

或者,您可以将对Stage的引用传递给Pickup的构造函数:

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