为什么我无法访问班级中的stage.stageWidth?在我的主要文件中似乎没问题。
var b:Number = stage.stageWidth;
追踪(b);
TypeError:错误#1009:无法访问空对象引用的属性或方法。
由于
答案 0 :(得分:1)
问题是stage是null。您需要添加一个事件侦听器,以便在舞台可用时进行侦听。在构造函数中添加一个事件侦听器:
addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
你和处理程序onAddedToStage来处理对处理阶段及其属性的方法的调用。
答案 1 :(得分:1)
正如Creative Magic所写,您可以使用Event.ADDED_TO_STAGE。
如果你的对象永远不会被添加到舞台上,你仍然需要使用stageWidth,你可以做两件事:
1)使用构造函数传递stage对象,或者在调用类的公共方法时:
//called from the main class:
var myCustomClassInstance:MyCustomClass = new MyCustomClass(stage);
//and/or
myCustomClassInstance.someMethod(stage);
2)在主类中创建一个静态函数,返回阶段:
//code in the main class:
private static var _stage:Stage;
public function Main() {
_stage = this.stage;
}
public static function getStage():Stage {
return _stage;
}
//code in custom class:
private function someFunctionWhereYouNeedStage():void {
var stage:Stage = Main.getStage();
trace(stage.stageWidth);
}