1

所以我正在开发一款 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,肯定是 stage。

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

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

干杯

4

2 回答 2

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;
}
于 2013-06-20T13:49:16.480 回答
0

stage属性null位于任何 DisplayObject 上,除非它实际上位于舞台上。

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

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

public function Pickup(stage:Stage)
{
    // Your code.
}
于 2013-06-20T22:30:31.730 回答