2012-08-07 103 views
2

我已經通過加載程序組件從應用程序的外部加載了swf。它被加載到我的加載程序的應用程序域。我有一個swf的類,我想擴展並覆蓋它的一些功能。以某種方式可能嗎? 下面是一些代碼來解釋我想要什麼(當然,這是完全不正確的,沃爾德不起作用):如何擴展在加載的swf中的類

public var ClassFromLoadedSwf:Class = ApplicationDomain.currentDomain.getDefinition("path.to.needed.class") as Class; 
public class MyClass extends ClassFromLoadedSwf 
{ 
    override protected function initMovie() : void 
    { 
     //function logic goes here 
    } 
} 

謝謝您的回答和對不起我的英語不好。

回答

8

不,你不能。基本上你不明白ApplicationDomain的含義。使用加載器和應用程序域,您可以在運行時將一些代碼合併到SWF中。在達到運行時狀態之前,它不能被訪問。所以在編譯時,你不能做你現在想做的事情。但是您可以嘗試使用SWC而不是SWF。你只需將它包含在你的項目庫中即可。您可以在編譯時訪問所有類。試試看這Article。它會幫助你理解SWCs的含義。

+0

謝謝您的回覆!我已經知道我不能這樣做,但我可以用相同的包路徑實現我自己的類,然後加載的swf將使用它而不是使用它所具有的類。不幸的是,我不能修改或訪問加載的swf的代碼,而它正從遠程服務器加載... – CodeDemen 2012-08-08 23:52:00

+0

你可以嘗試編寫一個接口,你的類從其他swf擴展並使用該接口作爲數據類型你需要從其他瑞士法郎的班級。 – Gio 2012-08-09 15:15:04