解读LoaderInfo

参见api之LoaderInfo

得到LoaderInfo对象的两种方式:

1.flash.display.Loader 对象的 contentLoaderInfo 属性 -- contentLoaderInfo 属性始终可用于任何 Loader 对象。

 var loader:Loader = LoaderInfo(e.target).loader;
 var sll:LoaderInfo = loader.contentLoaderInfo ;

 

2.显示对象的 loaderInfo 属性。

var s : Sprite = new Sprite();
var sl:LoaderInfo = s.loaderInfo;

 

LoaderInfo类的用处:LoaderInfo 类可提供有关已加载的 SWF 文件或图像文件(JPEG、GIF 或 PNG)的信息。 LoaderInfo 对象可用于任何显示对象。 提供的信息包括加载进度、加载程序的 URL 和加载内容、媒体的字节总数以及媒体的标示的高度和宽度。

 

观察代码:loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);其中loader.contentLoaderInfo.也是LoaderInfo对象。转自 Loader类的实例属性contentLoaderInfo。

flash.display.Loader.contentLoaderInfo():LoaderInfo

[只读] 返回与正在加载的对象相对应的 LoaderInfo 对象。LoaderInfo 对象在 Loader 对象和加载的内容对象之间共享。LoaderInfo 对象提供有关加载的文件的加载进度信息和统计 与加载相关的事件由 Loader 对象的 contentLoaderInfo 属性引用的 LoaderInfo 对象分派。contentLoaderInfo 属性设置为有效的 LoaderInfo 对象(即使在加载内容之前), 样您就可以在加载前将事件侦听器添加到该对象 。与观察代码对应上。

 

串联以上内容,以加载一个图片为例:

//在加载前将事件侦听器添加到该对象

var loader:Loader = new Loader();

loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);

//在o nComplete方法中

var loader:Loader = LoaderInfo(e.target).loader;

LoaderInfo(e.target)是一个LoaderInfo对象,loader是LoaderInfo对象的属性(属性loader的说明:与此 LoaderInfo 对象关联的 Loader 对象。 如果此 LoaderInfo 对象是 SWF 文件的主类实例的 loaderInfo 属性,则没有关联的 Loader 对象)。

 

引申问题:LoaderInfo(e.target)是何语法? e.target是什么?e是什么对象?

Event 类作为创建 Event 对象的基类,当发生事件时,Event 对象将作为参数传递给事件侦听器。e.target 事件目标。

e.target是事件目标对象,loader.contentLoaderInfo是 LoaderInfo对象, LoaderInfo(e.target)的语法是强制转换

 

观察代码:var baseUrl : String = this.loaderInfo.parameters.baseUrl;

LoaderInfo属性 parameters ,包含名称-值对的对象,表示为被加载的 SWF 文件提供的参数。Loader 对象(该对象包含使用 ActionScript 1.0 或 2.0 的 SWF 文件)的 parameters 属性的值为 null。只有对于包含使用 ActionScript 3.0 的 SWF 文件的 Loader 对象,该值才非 null。关键点和SWF有关。

但是未理解用法。。

 


已经学会uiLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaderComplete)的语法意义,加载swf文件时还用到一个类 LoaderContext,观察加载swf文件和图片的代码:

1.uiLoader.load(new URLRequest("ui/funnyFaceUI.swf"),new LoaderContext(true, ApplicationDomain.currentDomain));

2.uiLoader.load(new URLRequest("image/q.jpeg"));

api中对LoaderContext的解释:

使用 Loader.load() 方法加载 SWF 文件时,需要做出两个决定:应将所加载的 SWF 文件放置到哪个安全域中,以及应放置到该安全域中的哪个应用程序域中? 有关这些选择的更多详细信息,请参阅 applicationDomainsecurityDomain 属性。

这也是了解安全域、应用程序域的入口。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值