對於使用了Stage的swf,只是單純的用loader加載當complete事件完成時,同時也會觸發空引用的報錯
一般的解決辦法是針對被載入的swf
在初始化之前
package {
import Flash.display.Sprite;
import Flash.events.Event;
public class StageListener extends Sprite
{
public function StageListener()
{
this.addEventListener(Event.ADDED_TO_STAGE,addToStageHandle);
}
private function addToStageHandle(e:Event):void {
//your init code
}
}
}
這樣可以確保stage不爲空
對於不修改被載入的swf的解決辦法,我想到是利用ApplicationDomain來控制加載域,但是試了幾次都沒有成功。
--------------------------------------測試成功的用法是
var kk =new Sprite();
addChild(kk);
stage.focus = kk;
kk.addEventListener(KeyboardEvent.KEY_DOWN, reportKeyDown);
這樣就ok了