我需要一些關於這個問題的澄清,因爲我剛剛遇到加載到重用的加載器對象的swfs問題。
ApplicationDomain澄清需要
因此可以說我有3個SWF。
的main.swf
childA.swf
childB.swf
的main.swf中有一個裝載機對象得到重用(myloader.load( 「childA.swf」))和childA或childB SWF將通過用戶交互加載。
這兩個子swfs都有一個com包,該包中包含一個名爲config的包。
配置文件對於剛剛命名的兩個類都是不同的文件。
兩個孩子也SWF派遣的主要監聽
現在我有問題,如果childA首次再經過childB加載它仍然會顯示爲childA加載的事件。基本上,無論哪個人首先裝載到裝載機上都將成爲贏家。
這使我瘋狂,因爲我所做的一切都不會導致swf卸載。直到我找到下面的代碼。
var appDomain:ApplicationDomain = new ApplicationDomain();
var context:LoaderContext = new LoaderContext(false, appDomain);
_contentPanel.load(new URLRequest(str), context);
我偶然發現了這段代碼的某處談到如何真正的卸載一個swf後。顯然,這也適用於如何真正加載swf。
正如你所看到的,一個新的appDomain被創建並在加載時被分配給上下文。
這就像我現在可以整天加載和卸載的夢一樣。
我的困惑是孩子發送的事件仍然有效,當我不認爲主SWF應該接受它,因爲它不在同一個appDomain中。
我的意思是不應該阻止事件?
唉唉, 「因爲他們是孩子域」 這是我失蹤的關鍵。 –
哦,只是需要注意。我隱約記得大約3年前閱讀過一些內容,說運行時會將應用程序域添加到包中。因爲這是很久以前的事情,所以不要引用我的話,那時我沒有付出任何努力。 –