1

在一个类中定义一个字典,它需要根据一些应用程序事件重新启动。如果应用程序窗口有焦点,那么很好......但如果没有,我会得到:

TypeError:错误 #1009:无法访问空对象引用的属性或方法。

这是相关代码:

private var seleccion:Dictionary= new Dictionary();

private function myfunction():void{
    trace(stage);//it is always [object Stage]
    if(seleccion){ //always there
        trace(seleccion);////it is always [object Dictionary]
        seleccion= new Dictionary();//if have focus, ok. If not i get error #1009
    }
}

我简化了代码,只留下与问题相关的代码(我认为)......知道为什么会发生这种情况以及如何防止它吗?

4

1 回答 1

1

如前所述,这似乎更像是一个阶段问题。尝试通过事件 ADDED_TO_STAGE 初始化您的代码,如下所示:

package {

    import flash.display.Sprite;
    import flash.events.Event;

    public class Main extends Sprite {

        public function Main() {
            addEventListener(Event.ADDED_TO_STAGE, init);
        }

        private function init(e:Event):void {
            removeEventListener(Event.ADDED_TO_STAGE, init);
            //your code should start here
        }
    }
}
于 2013-06-01T12:31:51.273 回答