Actionscript 3 我的构造函数中出现AS3错误#1009?
所以我正在做一个2d平台游戏,我得到了1009分 在我的Pickup()类中,在构造函数中,我试图将this.x和this.y设置为中心stage,但它表示stage是null对象引用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
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。问题已更改。等待添加到舞台的事件。