Loader与URLLoader区别的总结分析

来源:互联网 发布:剑三高冷道姑捏脸数据 编辑:程序博客网 时间:2024/06/09 23:45
Loader与URLLoader区别的总结分析
 2012-02-06 12:14:23 来源:本站整理 【减小字体增大字体】  关注谷汶锴的微博
核心提示:区别:一个用来加载可显示数据,一个用来加载非显示数据因为loader是继承与容器类的,Loader与URLLoader区别的总结分析,所以首先它是个容器,而URLLoader 是继承与EventDispatcher,png等)时,Loader.content得到数据类型是Bitmap对象;如果加载SWF文件(flash

区别:一个用来加载可显示数据,一个用来加载非显示数据因为loader是继承与容器类的,所以首先它是个容器,而URLLoader 是继承与EventDispatcher,它不是容器URLLoader 类以文本、二进制数据或 URL 编码变量的形式从 URL 下载数据,在加载非常大的视频文件(如 FLV 的视频文件)时,可能会出现内存不足错误,返回的数据在data属性里面

而loader多加载图片,swf等可视化对象,加载后作为唯一的子对象显示在列表上。

应用范围
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 loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);


大家知道Loader是用来代替原来 MovieClip的loadMovie功能,用于加载外部的图片文件,SWF文件。
如果加载图片文件(jpg,gif,png等)时,Loader.content得到数据类型是Bitmap对象;
如果加载SWF文件(flash 9 版本)时,Loader.content得到数据类型是MovieClip对象;

如果加载SWF文件(flash 9 以前版本) 时, Loader.content得到数据类型是AVM1Movie对象






    相册
    广场

    登录
    注册

关注此空间
inJava

J2EE、架构、搜索引擎、数据挖掘、互联网、创业、媒体、资料库
2010-03-07 20:19
flash通信URLLoader用request带参数数据
URLRequest也有个属性data用作请求参数。首先先看下面的代码。
System.useCodePage=true;
btn.addEventListener(MouseEvent.CLICK,loadTxt);
function loadTxt(evt:MouseEvent):void
{
var urlLoader:URLLoader=new URLLoader();
urlLoader.load(new URLRequest("http://www.baidu.com/s?wd=flash"));
urlLoader.addEventListener(Event.COMPLETE,finish);
}
function finish(evt:Event):void
{
mytxt.text=(evt.currentTarget as URLLoader).data;
}
这种参数直接绑在url地址串上的方式没什么说的,再看下面的。
System.useCodePage=true;
btn.addEventListener(MouseEvent.CLICK,loadTxt);
function loadTxt(evt:MouseEvent):void
{
var urlLoader:URLLoader=new URLLoader();
                var request:URLRequest=new URLRequest();
request.url="http://www.baidu.com/s";
request.method=URLRequestMethod.GET;
request.data="wd=flash";
urlLoader.load(request);
urlLoader.addEventListener(Event.COMPLETE,finish);
}
function finish(evt:Event):void
{
mytxt.text=(evt.currentTarget as URLLoader).data;
}
这个和上面的也没什么两样,换汤不换药(注意data会看成string),下面的:
System.useCodePage=true;
btn.addEventListener(MouseEvent.CLICK,loadTxt);
function loadTxt(evt:MouseEvent):void
{
var urlLoader:URLLoader=new URLLoader();
var request:URLRequest=new URLRequest();
                var vars:URLVariables=new URLVariables();
vars.wd="flash";
request.url="http://www.baidu.com/s";
request.method=URLRequestMethod.GET;
                request.data=vars;
urlLoader.load(request);
urlLoader.addEventListener(Event.COMPLETE,finish);
}
function finish(evt:Event):void
{
mytxt.text=(evt.currentTarget as URLLoader).data;
}
这里data是URLVariables是值对,注意区别。