我正在Flash中创建一个网站,用flashbuilder编码。每当我尝试导出我的代码时,我会一次又一次地得到相同的错误(TypeError =见下文)。
我认为这个问题与我的项目阶段有关。每当我将var stageMiddenX = (stage.stageWidth / 2);
更改为var stageMiddenX = 512;
时,代码都会正常运行。但我不认为var是动态的。
类型错误 错误#1009:无法访问main()
中的空对象引用的属性或方法
package {
import flash.display.MovieClip;
public class main extends MovieClip{
var stageMiddenX = (stage.stageWidth / 2);
var stageMiddenY = (stage.stageHeight / 2);
private var object1:Object1 = new Object1();
private var object2:Object2 = new Object2();
private var object3:Object3 = new Object3();
}
}
答案 0 :(得分:6)
此处的问题是,stage
在您请求时尚未提供。
在尝试访问Event.ADDED_TO_STAGE
之前,您需要等到stage
事件被触发。
package {
import flash.display.MovieClip;
public class main extends MovieClip{
private var object1:Object1 = new Object1();
private var object2:Object2 = new Object2();
private var object3:Object3 = new Object3();
private var stageMiddenX:Number;
private var stageMiddenY:Number;
public function main(){
if(stage) init(null);
else addEventListener(Event.ADDED_TO_STAGE, init)
}
private function init(e:Event):void {
removeEventListener(Event.ADDED_TO_STAGE, init);
stageMiddenX = (stage.stageWidth / 2);
stageMiddenY = (stage.stageHeight / 2);
}
}
}
答案 1 :(得分:1)
将访问阶段的东西放入构造函数中(假设这是您的文档类)..
package
{
import flash.display.MovieClip;
public class main extends MovieClip
{
public var stageMiddenX:int;
public var stageMiddenY:int;
private var object1:Object1 = new Object1();
private var object2:Object2 = new Object2();
private var object3:Object3 = new Object3();
public function main()
{
stageMiddenX = stage.stageWidth / 2;
stageMiddenY = stage.stageHeight / 2;
}
}
}