[AS3]Loader与URLLoader的使用与比较
AS3已经中Loader与URLLoader是两个比较容易混淆的类,特此区分:
应用范围
Loader: swf,图片(jpg,png,gif)
URLLoader:文本文件(xml,php,jsp…)
使用方法
Loader:
- loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
- private function loadComplete(event:Event) { trace("done");addChild(loader);}
URLLoader:
- xmlLoader.dataFormat=URLLoaderDataFormat.TEXT;
- xmlLoader.addEventListener(Event.COMPLETE,xmlLoaded);
- private function xmlLoaded(event:Event) {
- try {myXML = XML(event.target.data);area.text=myXML;}
- catch (e:TypeError) {area.text="Load faild:\n"+e.message;}
- }
Loader
在使用Loader来加载数据时,添加侦听事件时,注意一定要给Loader的 contentLoaderInfo属性增加事件,而不是给Loader对象增加事件。
- var request:URLRequest;
- request = new URLRequest ("http://www.main.externalSwf.swf");
- var loader:Loader = new Loader()
- loader.load(request);
- addChild(loader);
Loader加载过来的数据类型
大家知道Loader是用来代替原来 MovieClip的loadMovie功能,用于加载外部的图片文件,SWF文件。
如果加载图片文件(jpg,gif,png等)时,Loader.content得到数据类型是Bitmap对象;
如果加载SWF文件(flash 9 版本)时,Loader.content得到数据类型是MovieClip对象;
如果加载SWF文件(flash 9 以前版本) 时, Loader.content得到数据类型是AVM1Movie对象;
具体见 http://livedocs.adobe.com/flex/3_cn/langref/flash/display/Loader.html#load()
当加载操作已开始或套接字已接收到数据时,将调度 ProgressEvent 对象。这些事件通常在将 SWF 文件、图像或数据加载到应用程序中时生成。有两种类型的进程事件:ProgressEvent.PROGRESS 和 ProgressEvent.SOCKET_DATA。ProgressEvent.PROGRESS 64K触发一次事件。
可以使用 URLLoader 类从 URL 加载 XML 数据。要在应用程序中使用以下代码,请将示例中的 XML_URL 值替换为有效的 URL:
URLLoader
- var myXML:XML = new XML();
- var myXMLURL:URLRequest = new URLRequest("http://www.example.com/Sample3.xml");
- var myLoader:URLLoader = new URLLoader(myXMLURL);
- myLoader.addEventListener("complete", xmlLoaded);
- function xmlLoaded(event:Event):void
- {
- myXML = XML(myLoader.data);
- trace("Data loaded.");
- }
URLLoader 用于加在二进制文件和文本,当然也可以加在图片,但是他不管显示,你需要自己用获得的二进制数据构建显示对象。
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例