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"));

你可能感兴趣的:(loader)