在AS3中的舞台属性上使用空引用时出现问题

W4c*_*cko 2 actionscript-3 flash-builder flash-cs5

我正在Flash中创建一个网站,用flashbuilder编码.每当我尝试导出我的代码时,我会一次又一次地得到相同的错误(TypeError =见下文).

我认为问题与我的项目阶段有关.每当我更改var stageMiddenX = (stage.stageWidth / 2);var stageMiddenX = 512;,代码都有效.但我不认为var是动态的.

TypeError错误#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();
  }
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*ela 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);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 如果上面的类是文档类,则不需要此过程.我不确定该示例是否为..所以+1反正! (2认同)