as3 Loader與URLLoader的區別和用法


1、 Loader與URLLoader的區別:

        Loader:類可用於加載 SWF 文件或圖像(JPG、PNG 或 GIF)文件。被加載的顯示對象將作為Loader對象的子級添加。

        URLLoader:類以文本、二進制數據或 URL 編碼變量的形式從 URL 下載數據。在下載文本文件、XML 或其它用於動態數據驅動應用程序的信息時,它很有用。

 

        Loader: 在 ActionScript 3.0 中使用的不是 ActionScript 2.0 MovieClipLoader 和 LoadVars 類,而是 Loader和 URLLoader 類。

                          使用Loader考慮 Flash Player 和 Adobe AIR 的安全模型:

                          您可以加載來自任何可訪問源的內容。

                          如果執行調用的 SWF 文件位於網絡沙箱中並且要加載的文件是本地的,則不允許加載。

           System.allowInsecureDomain() 方法來允許跨腳本排列,否則另一個安全沙箱中的 SWF 文件不能對它執行跨腳本操作。

                         如果被加載的內容為 AVM1 SWF 文件(用 ActionScript 1.0 或 2.0 編寫),則 AVM2 SWF 文件(用 ActionScript 3.0 編寫)不能對它執行跨腳本操作。但是,可以通過使用 LocalConnection 類在兩個 SWF 文件之間實現通信。

                         如果被加載的內容為圖像,則除非該 SWF 文件的域包含在該圖像原始域的跨域策略文件中,否則安全沙箱之外的 SWF 文件無法訪問其數據。

                        在只能與本地文件系統的內容交互的沙箱中的影片剪輯不能對只能與遠程內容交互的沙箱中的影片剪輯使用腳本,反之亦然。

但在 Apollo 運行時中,application 安全沙箱中的內容(使用 Apollo 應用程序安裝的內容)不受這些安全限制的約束。

           

         URLLoader:網站可通過跨域策略文件允許對資源進行跨域訪問。
                                  如果任何版本的 SWF 文件在 Flash Player 7 及更高版本中運行,則 url 必須位於完全相同的域中。           

    

下面舉個簡單使用該類的例子。

例如:
         a、Loader:

               var urlload:Loader = new Loader();
               urlload.load(new URLRequest("1.jpg"));
               addChild(urlload);

 

         b、URLLoader:

               var urlload:URLLoader = new URLLoader();
               urlload.addEventListener(Event.COMPLETE,function complete(e:Event):void{
               var str:String = e.target.data;
               var xml:XML = new XML(str);
               });
              urlload.load(new URLRequest("tasks.xml"));

1、 Loader與URLLoader的區別:

        Loader:類可用於加載 SWF 文件或圖像(JPG、PNG 或 GIF)文件。被加載的顯示對象將作為Loader對象的子級添加。

        URLLoader:類以文本、二進制數據或 URL 編碼變量的形式從 URL 下載數據。在下載文本文件、XML 或其它用於動態數據驅動應用程序的信息時,它很有用。

 

        Loader: 在 ActionScript 3.0 中使用的不是 ActionScript 2.0 MovieClipLoader 和 LoadVars 類,而是 Loader和 URLLoader 類。

                          使用Loader考慮 Flash Player 和 Adobe AIR 的安全模型:

                          您可以加載來自任何可訪問源的內容。

                          如果執行調用的 SWF 文件位於網絡沙箱中並且要加載的文件是本地的,則不允許加載。

           System.allowInsecureDomain() 方法來允許跨腳本排列,否則另一個安全沙箱中的 SWF 文件不能對它執行跨腳本操作。

                         如果被加載的內容為 AVM1 SWF 文件(用 ActionScript 1.0 或 2.0 編寫),則 AVM2 SWF 文件(用 ActionScript 3.0 編寫)不能對它執行跨腳本操作。但是,可以通過使用 LocalConnection 類在兩個 SWF 文件之間實現通信。

                         如果被加載的內容為圖像,則除非該 SWF 文件的域包含在該圖像原始域的跨域策略文件中,否則安全沙箱之外的 SWF 文件無法訪問其數據。

                        在只能與本地文件系統的內容交互的沙箱中的影片剪輯不能對只能與遠程內容交互的沙箱中的影片剪輯使用腳本,反之亦然。

但在 Apollo 運行時中,application 安全沙箱中的內容(使用 Apollo 應用程序安裝的內容)不受這些安全限制的約束。

           

         URLLoader:網站可通過跨域策略文件允許對資源進行跨域訪問。
                                  如果任何版本的 SWF 文件在 Flash Player 7 及更高版本中運行,則 url 必須位於完全相同的域中。           

    

下面舉個簡單使用該類的例子。

例如:
         a、Loader:

               var urlload:Loader = new Loader();
               urlload.load(new URLRequest("1.jpg"));
               addChild(urlload);

 

         b、URLLoader:

               var urlload:URLLoader = new URLLoader();
               urlload.addEventListener(Event.COMPLETE,function complete(e:Event):void{
               var str:String = e.target.data;
               var xml:XML = new XML(str);
               });
              urlload.load(new URLRequest("tasks.xml"));


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM