参见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 文件放置到哪个安全域中,以及应放置到该安全域中的哪个应用程序域中? 有关这些选择的更多详细信息,请参阅 applicationDomain
和 securityDomain
属性。
这也是了解安全域、应用程序域的入口。