今天我們來介紹關于flash中的類加載和應用程序域的概念和作用,ApolicationDomain類的用途是存儲ActionScript3.0定義表,swf文件中的所有代碼定義都存在應用程序域中,可以使用應用程序域劃分位于同一個安全域中的類,這允許同一個類存在多個定義,并且還允許子級重用父級定義,下面我們就倆看看詳細的介紹。
(一)應用程序域類可以看作管理加載類的區(qū)域,有3個區(qū)域用來保存類。
1、加載到子域
類似于“繼承”,子域可以直接獲得父域所有的類定義;反之,父域得不到子域的。和繼承關系不同的是,如果子域中有和父域同名的類,子域定義會被忽略而使用父域的定義。
2、加載到同域
類似集合里的合并關系,被加載的swf文件里的所有類定義被合并到當前域中且可以直接使用,和加載到子域相同,與當前域同名的域也會被忽略。
3、加載到新域
swf載入指定域之前,先要檢查該域及其父域中是否存在同名類,重復定義一概忽略。如果加載別人寫的程序,或者使用舊版本的主程序加載新版本的模塊,為避免類名沖突要加載到新域獨立運行便于使用自己的類。
4、系統(tǒng)域指的是Flash播放器的核心類定義,在系統(tǒng)域的下面就是主程序,不同加載域的結構如下圖所示。
(二)根據(jù)按鈕與主程序的位置關系,把加載域分為三種。
1、把外部swf文件加載到同域,即和主程序同一個位置的區(qū)域。如果在同域和主程序中有相同的類定義,則忽略同域的類定義,使用主程序中的類定義。它使用的代碼如下圖所示。
2、把swf文件加載到子域,即位于主程序下一級位置的區(qū)域,主程序相當于父域,被加載的域相當于子域,與加載到同域類似,如果子域中有和父域同名的類,子域定義會被忽略而使用父域的定義。執(zhí)行它的代碼如下圖所示。
3、把swf文件加載到新域,即位于主程序同一級位置的區(qū)域。如果加載域與主程序中有同名的類,使用的不是主程序中的類,而是加載域的類。即使新舊版本之間使用同樣的類名,也不會發(fā)生命名沖突,因為它們被劃分到了不同的應用程序域中。實現(xiàn)它的代碼如下圖所示。
以上就是關于flash中類加載和應用程序域的介紹,希望大家喜歡,請繼續(xù)關注武林網。
相關推薦:
flash cs6中怎么使用ActionScript3.0?
Flash cs6怎么實現(xiàn)按下字母按鈕顯示對應的圖形?
Flash怎么計算向量點積? Flash兩個向量點積的計算方法
新聞熱點
疑難解答