运行时版本: | AIR 1.0 Flash Player 9 |
LoaderInfo 类可提供有关已加载的 SWF 文件或图像文件(JPEG、GIF 或 PNG)的信息。LoaderInfo 对象可用于任何显示对象。提供的信息包括加载进度、加载程序的 URL 和加载内容、媒体的字节总数以及媒体的标示的高度和宽度。
您可以通过以下两种方法访问 LoaderInfo 对象:
-
flash.display.Loader 对象的
contentLoaderInfo
属性 -- contentLoaderInfo
属性始终可用于任何 Loader 对象。对于尚未调用 load()
或 loadBytes()
方法,或者尚未充分加载的 Loader 对象,在尝试访问 contentLoaderInfo
属性的多个属性时,将引发错误。
-
显示对象的
loaderInfo
属性。
Loader 对象的 contentLoaderInfo
属性提供有关 Loader 对象正在加载的内容的信息,而 DisplayObject 的 loaderInfo
属性提供有关该显示对象的根 SWF 文件的信息。
当使用 Loader 对象加载显示对象(如 SWF 文件或位图)时,显示对象的 loaderInfo
属性与 Loader 对象 (DisplayObject.loaderInfo = Loader.contentLoaderInfo
) 的 contentLoaderInfo
属性相同。由于 SWF 文件的主类的实例没有 Loader 对象,因此 loaderInfo
属性是访问 SWF 文件主类实例的 LoaderInfo 的唯一方法。
下图显示了对于 SWF 文件主类实例、Loader 对象的 contentLoaderInfo
属性以及加载对象的 loaderInfo
属性,LoaderInfo 对象的不同用法:
在加载操作未完成时,Loader 对象的 contentLoaderInfo
属性的某些属性不可用。您可以获得某些属性,如 bytesLoaded
、bytesTotal
、url
、loaderURL
和 applicationDomain
。当 loaderInfo
对象调度 init
事件时,您可以访问 loaderInfo
对象以及加载的图像或 SWF 文件的所有属性。
注意:LoaderInfo 对象的所有属性都是只读的。
EventDispatcher.dispatchEvent()
方法不适用于 LoaderInfo 对象。如果在 LoaderInfo 对象上调用 dispatchEvent()
,将引发 IllegalOperationError 异常。
查看示例
actionScriptVersion:uint
[只读 (read-only)]
运行时版本: | AIR 1.0 Flash Player 9 |
被加载的 SWF 文件的 ActionScript 版本。通过使用 ActionScriptVersion 类中的枚举(如 ActionScriptVersion.ACTIONSCRIPT2
和 ActionScriptVersion.ACTIONSCRIPT3
)来指定语言版本。
注意:此属性始终具有值 ActionScriptVersion.ACTIONSCRIPT2
或 ActionScriptVersion.ACTIONSCRIPT3
。ActionScript 1.0 和 2.0 都被报告为 ActionScriptVersion.ACTIONSCRIPT2
(版本 2.0)。此属性只对 ActionScript 1.0 和 2.0 与 ActionScript 3.0 进行区分。
实现 public function get actionScriptVersion():uint
引发 | Error — 如果文件未完整下载,不足以检索到所请求的信息。 |
|
| Error — 如果文件不是 SWF 文件。 |
另请参见
applicationDomain:ApplicationDomain
[只读 (read-only)]
运行时版本: | AIR 1.0 Flash Player 9 |
加载外部 SWF 文件后,包含在已加载类中的所有 ActionScript 3.0 定义将存储在 applicationDomain
属性中。
SWF 文件中的所有代码被定义为存在于应用程序域中。主应用程序就在当前的应用程序域中运行。系统域包含所有应用程序域,包括当前域和由 Flash Player 或 Adobe AIR 使用的所有类。
所有应用程序域(系统域除外)都有关联的父域。主应用程序的 applicationDomain
的父域为系统域。已加载的类仅在其父级中没有相关定义时才进行定义。不能用较新的定义覆盖已加载的类定义。
有关应用程序域的用法示例,请参阅《ActionScript 3.0 编程》中的“客户端系统环境”一章。
实现 public function get applicationDomain():ApplicationDomain
引发 另请参见
bytes:ByteArray
[只读 (read-only)]
运行时版本: | AIR 1.0 Flash Player 9.0.115.0 |
与 LoaderInfo 对象关联的字节数。
实现 public function get bytes():ByteArray
引发 | SecurityError —
如果由于安全限制的缘故而阻止访问此 API 的对象访问加载的对象。例如,如果 Loader 对象尝试访问 contentLoaderInfo.content 属性,但未向其授予访问加载的内容的安全权限,则可能会出现此情况。
有关详细信息,请参阅《ActionScript 3.0 编程》中的“Flash Player 安全性”一章。
|
bytesLoaded:uint
[只读 (read-only)]
运行时版本: | AIR 1.0 Flash Player 9 |
媒体已加载的字节数。如果此数字与 bytesTotal
的值相等,则会加载所有字节。
实现 public function get bytesLoaded():uint
bytesTotal:uint
[只读 (read-only)]
运行时版本: | AIR 1.0 Flash Player 9 |
整个媒体文件中压缩的字节数。
在此 LoaderInfo 对象相应的 Loader 对象调度第一个 progress
事件之前,bytesTotal
为 0。在该 Loader 对象调度第一个 progress
事件之后,bytesTotal
反映的是要下载的实际字节数。
实现 public function get bytesTotal():uint
另请参见
childAllowsParent:Boolean
[只读 (read-only)]
运行时版本: | AIR 1.0 Flash Player 9 |
表示内容(子级)对加载者(父级)的信任关系。如果子项允许父项访问,则为 true
;否则为 false
。如果子对象已调用 allowDomain()
方法向父域授予权限,或者在子域中加载了向父域授予权限的 URL 策略,则将此属性设置为 true
。如果子级和父级在同一域中,则此属性设置为 true
。
有关详细信息,请参阅《ActionScript 3.0 编程》中的“Flash Player 安全性”一章。
实现 public function get childAllowsParent():Boolean
引发 | Error — 文件未完整下载而不足以检索到所请求的信息时引发。 |
childSandboxBridge:Object
[读写]
一个对象,它可以通过所加载内容的代码进行设置以公开可以由 Loader 对象的沙箱中的代码访问的属性和方法。此沙箱桥 使来自非应用程序域的内容对 AIR 应用程序沙箱中的脚本具有受控的访问权,反之亦然。沙箱桥充当沙箱之间的通道,在应用程序安全沙箱和非应用程序安全沙箱之间提供显式交互。
实现 public function get childSandboxBridge():Object
public function set childSandboxBridge(value:Object):void
引发 另请参见
content:DisplayObject
[只读 (read-only)]
运行时版本: | AIR 1.0 Flash Player 9 |
与此 LoaderInfo 对象关联的已加载对象。
实现 public function get content():DisplayObject
引发 | SecurityError —
如果由于安全限制的缘故而阻止访问此 API 的对象访问加载的对象。例如,如果 Loader 对象尝试访问 contentLoaderInfo.content 属性,但未向其授予访问加载的内容的安全权限,则可能会出现此情况。
有关详细信息,请参阅《ActionScript 3.0 编程》中的“Flash Player 安全性”一章。
|
contentType:String
[只读 (read-only)]
运行时版本: | AIR 1.0 Flash Player 9 |
被加载文件的 MIME 类型。如果所加载的文件内容不足以确定类型,则该值为 null
。以下列表给出了可能的值:
-
"application/x-shockwave-flash"
-
"image/jpeg"
-
"image/gif"
-
"image/png"
实现 public function get contentType():String
frameRate:Number
[只读 (read-only)]
运行时版本: | AIR 1.0 Flash Player 9 |
被加载的 SWF 文件的标示的帧频,以每秒帧数为单位。此数字通常是整数,但并不需要是整数。
此值可能与使用时的实际帧频不同。Flash Player 或 Adobe AIR 在任何时候为所有加载的 SWF 文件只使用单个帧速率,此帧速率由主 SWF 文件的标称帧速率确定。此外,根据硬件、声音同步和其他因素,可能无法达到主帧速率。
实现 public function get frameRate():Number
引发 | Error — 如果文件未完整下载,不足以检索到所请求的信息。 |
|
| Error — 如果文件不是 SWF 文件。 |
height:int
[只读 (read-only)]
运行时版本: | AIR 1.0 Flash Player 9 |
加载文件的标示的高度。此值可能与所显示内容的实际高度不同,因为被加载的内容或其父显示对象可能被缩放。
实现 public function get height():int
引发 | Error — 如果文件未完整下载,不足以检索到所请求的信息。 |
loader:Loader
[只读 (read-only)]
运行时版本: | AIR 1.0 Flash Player 9 |
与此 LoaderInfo 对象关联的 Loader 对象。如果此 LoaderInfo 对象是 SWF 文件的主类实例的 loaderInfo
属性,则没有关联的 Loader 对象。
实现 public function get loader():Loader
引发 | SecurityError —
如果由于安全限制的缘故而阻止访问此 API 的对象访问 Loader 对象。例如,如果加载的 SWF 文件尝试访问其 loaderInfo.loader 属性,但未向其授予访问正在加载的 SWF 文件的安全权限,则可能会出现此情况。
有关详细信息,请参阅《ActionScript 3.0 编程》中的“Flash Player 安全性”一章。
|
loaderURL:String
[只读 (read-only)]
运行时版本: | AIR 1.0 Flash Player 9 |
SWF 文件的 URL,该 SWF 文件启动对此 LoaderInfo 对象所描述的媒体的加载。对于 SWF 文件的主类的实例,此 URL 与 SWF 文件自己的 URL 相同。
实现 public function get loaderURL():String
parameters:Object
[只读 (read-only)]
运行时版本: | AIR 1.0 Flash Player 9 |
包含名称-值对的对象,表示为被加载的 SWF 文件提供的参数。
可以使用 for-in
循环来提取 parameters
对象中的所有名称和值。
参数的两个源为:主 SWF 文件的 URL 中的查询字符串和 FlashVars
HTML 参数(这只影响主 SWF 文件)的值。
parameters
属性替换了 ActionScript 1.0 和 2.0 提供 SWF 文件参数作为主时间轴的技术。
Loader 对象(该对象包含使用 ActionScript 1.0 或 2.0 的 SWF 文件)的 parameters
属性的值为 null。只有对于包含使用 ActionScript 3.0 的 SWF 文件的 Loader 对象,该值才非 null。
实现 public function get parameters():Object
parentAllowsChild:Boolean
[只读 (read-only)]
运行时版本: | AIR 1.0 Flash Player 9 |
表示加载者(父级)对内容(子级)的信任关系。如果父项允许子项访问,则为 true
;否则为 false
。如果父对象调用了 allowDomain()
方法向子域授予权限,或者在父域中加载了向子域授予权限的 URL 策略文件,则将此属性设置为 true
。如果子级和父级在同一域中,则此属性设置为 true
。
有关详细信息,请参阅《ActionScript 3.0 编程》中的“Flash Player 安全性”一章。
实现 public function get parentAllowsChild():Boolean
引发 | Error — 文件未完整下载而不足以检索到所请求的信息时引发。 |
parentSandboxBridge:Object
[读写]
一个对象,它可以在 Loader 对象的沙箱中通过代码进行设置以公开可以由所加载内容的代码访问的属性和方法。此沙箱桥 使来自非应用程序域的内容对 AIR 应用程序沙箱中的脚本具有受控的访问权,反之亦然。沙箱桥充当沙箱之间的通道,在应用程序安全沙箱和非应用程序安全沙箱之间提供显式交互。
实现 public function get parentSandboxBridge():Object
public function set parentSandboxBridge(value:Object):void
引发 另请参见
sameDomain:Boolean
[只读 (read-only)]
运行时版本: | AIR 1.0 Flash Player 9 |
表示加载者和内容之间的域关系:如果它们具有相同的原始域,则为 true
;否则为 false
。
实现 public function get sameDomain():Boolean
引发 | Error — 文件未完整下载而不足以检索到所请求的信息时引发。 |
sharedEvents:EventDispatcher
[只读 (read-only)]
运行时版本: | AIR 1.0 Flash Player 9 |
EventDispatcher 实例,可用于跨安全边界交换事件。即使 Loader 对象和加载的内容源于彼此不信任的安全域,两者仍然可以访问 sharedEvents
并通过此对象发送和接收事件。
实现 public function get sharedEvents():EventDispatcher
swfVersion:uint
[只读 (read-only)]
运行时版本: | AIR 1.0 Flash Player 9 |
已加载的 SWF 文件的文件格式版本。使用 SWFVersion 类(如 SWFVersion.FLASH7
和 SWFVersion.FLASH9
)中的枚举指定文件格式。
实现 public function get swfVersion():uint
引发 | Error — 如果文件未完整下载,不足以检索到所请求的信息。 |
|
| Error — 如果文件不是 SWF 文件。 |
另请参见
url:String
[只读 (read-only)]
运行时版本: | AIR 1.0 Flash Player 9 |
所加载媒体的 URL。
在此 LoaderInfo 对象的对应 Loader 对象调度第一个 progress
事件之前,url
属性的值可能只反映在对 Loader 对象的 load()
方法的调用中指定的初始 URL。在第一个 progress
事件之后,url
属性将在解析了任何重定向和相对 URL 后反映媒体的最终 URL。
实现 public function get url():String
另请参见
width:int
[只读 (read-only)]
运行时版本: | AIR 1.0 Flash Player 9 |
被加载内容的标示的宽度。此值可能与所显示内容的实际宽度不同,因为被加载的内容或其父显示对象可能被缩放。
实现 public function get width():int
引发 | Error — 如果文件未完整下载,不足以检索到所请求的信息。 |
public static function getLoaderInfoByDefinition(object:Object):LoaderInfo
运行时版本: | AIR 1.0 Flash Player 9.0.115.0 |
返回与定义为对象的 SWF 文件相关联的 LoaderInfo 对象。
参数
| object:Object — 要为其获取关联 LoaderInfo 对象的对象。 |
返回 | LoaderInfo —
关联的 LoaderInfo 对象。当在非调试器构建中调用时(或未启用调试时),或当引用的 object 没有相关联的 LoaderInfo 对象(比如由 AIR 运行时使用的某些对象)时,返回 null 。
|
引发事件对象类型: flash.events.Event
属性 Event.type = flash.events.Event.COMPLETE
运行时版本: | AIR 1.0 Flash Player 9 |
成功加载数据后调度。 也就是说,当已下载所有内容并且已完成加载过程时调度它。complete
事件始终在 init
事件之后调度。当该对象已做好访问准备(尽管可能仍在下载内容)时,将调度 init
事件。
Event.COMPLETE
常量定义
complete
事件对象的
type
属性值。
此事件具有以下属性:
属性 | 值 |
---|
bubbles
|
false
|
cancelable
|
false ;没有要取消的默认行为。
|
currentTarget
| 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target
| 已完成加载的网络对象。 |
另请参见
事件对象类型: flash.events.HTTPStatusEvent
属性 HTTPStatusEvent.type = flash.events.HTTPStatusEvent.HTTP_STATUS
运行时版本: | AIR 1.0 Flash Player 9 |
在通过 HTTP 发出网络请求并且可以检测到 HTTP 状态代码时调度。
HTTPStatusEvent.HTTP_STATUS
常量定义
httpStatus
事件对象的
type
属性值。
此事件具有以下属性:
属性 | 值 |
---|
bubbles
|
false
|
cancelable
|
false ;没有要取消的默认行为。
|
currentTarget
| 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
status
| 由服务器返回的 HTTP 状态代码。 |
target
| 接收 HTTP 状态代码的网络对象。 |
另请参见
事件对象类型: flash.events.Event
属性 Event.type = flash.events.Event.INIT
运行时版本: | AIR 1.0 Flash Player 9 |
当已加载的 SWF 文件的属性和方法可供访问并做好使用准备时进行调度。不过,内容可能仍在下载之中。如果存在以下条件,则 LoaderInfo 对象将调度 init
事件:
- 可以访问与加载的对象关联的所有属性和方法以及与 LoaderInfo 对象关联的属性和方法。
- 所有子对象的构造函数已完成。
- 已执行所加载的 SWF 主时间轴的第一帧中的所有 ActionScript 代码。
例如,在加载影片或动画的第一帧时将调度 Event.INIT
。然后,影片将可供访问并可添加到显示列表中。不过,下载完整的影片可能需要花更长的时间。只有在加载了完整的影片之后才会调度 Event.COMPLETE
。
init
事件始终在 complete
事件之前。
Event.INIT
常量定义
init
事件对象的
type
属性值。
此事件具有以下属性:
属性 | 值 |
---|
bubbles
|
false
|
cancelable
|
false ;没有要取消的默认行为。
|
currentTarget
| 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target
| 与所加载的 SWF 文件相关联的 LoaderInfo 对象。 |
另请参见
事件对象类型: flash.events.IOErrorEvent
属性 IOErrorEvent.type = flash.events.IOErrorEvent.IO_ERROR
运行时版本: | AIR 1.0 Flash Player 9 |
在发生导致加载操作失败的输入或输出错误时调度。
定义
ioError
事件对象的
type
属性值。
此事件具有以下属性:
属性 | 值 |
---|
bubbles
|
false
|
cancelable
|
false ;没有要取消的默认行为。
|
currentTarget
| 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
errorID
| 与特定错误关联的引用编号(仅限 AIR)。 |
target
| 发生输入/输出错误的网络对象。 |
text
| 要显示为错误消息的文本。 |
另请参见
事件对象类型: flash.events.Event
属性 Event.type = flash.events.Event.OPEN
运行时版本: | AIR 1.0 Flash Player 9 |
在加载操作开始时调度。
Event.OPEN
常量用于定义
open
事件对象的
type
属性值。
此事件具有以下属性:
属性 | 值 |
---|
bubbles
|
false
|
cancelable
|
false ;没有要取消的默认行为。
|
currentTarget
| 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target
| 已打开连接的网络对象。 |
另请参见
事件对象类型: flash.events.ProgressEvent
属性 ProgressEvent.type = flash.events.ProgressEvent.PROGRESS
运行时版本: | AIR 1.0 Flash Player 9 |
在下载操作过程中收到数据时调度。
定义
progress
事件对象的
type
属性值。
此事件具有以下属性:
属性 | 值 |
---|
bubbles
|
false
|
bytesLoaded
| 在侦听器处理事件时加载的项数或字节数。 |
bytesTotal
| 如果加载进程成功,最终将加载的项目或字节总数。 |
cancelable
|
false ;没有要取消的默认行为。
|
currentTarget
| 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target
| 报告进度的 对象。 |
另请参见
事件对象类型: flash.events.Event
属性 Event.type = flash.events.Event.UNLOAD
运行时版本: | AIR 1.0 Flash Player 9 |
当使用 Loader 对象的 unload()
方法删除已加载对象时,或者当同一 Loader 对象执行第二次加载并且在加载开始之前删除了原始内容时,由 LoaderInfo 对象调度。
Event.UNLOAD
常量定义
unload
事件对象的
type
属性值。
此事件具有以下属性:
属性 | 值 |
---|
bubbles
|
false
|
cancelable
|
false ;没有要取消的默认行为。
|
currentTarget
| 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target
| LoaderInfo 对象与将被卸载或替换的 SWF 文件相关联。 |
另请参见
下例使用 LoaderInfoExample 类在舞台上显示一幅图像。执行下列步骤可完成此操作:
-
属性
url
被创建,该属性是图像的位置和名称。
-
类构造函数创建一个名为
loader
的 Loader 对象。
-
loader
对象将事件侦听器进行实例化,以确保图像正确加载。
-
构造函数创建一个 URLRequest 对象的新实例
request
,该实例带有传递的 url
,这样,就可以知道文件的名称和位置。
-
然后,
request
对象被传递给 loader
对象的 load()
方法,该方法会将图像加载到显示列表上。
重要提示:该示例要求您在编译的 SWF 文件所在的目录中添加一个名为 Image.gif 的文件。使用具有一个适合主 SWF 文件尺寸的区域的图像。
package {
import flash.display.Loader;
import flash.display.LoaderInfo;
import flash.display.Sprite;
import flash.events.*;
import flash.net.URLRequest;
public class LoaderInfoExample extends Sprite {
private var url:String = "Image.gif";
public function LoaderInfoExample() {
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.INIT, initHandler);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
var request:URLRequest = new URLRequest(url);
loader.load(request);
addChild(loader);
}
private function initHandler(event:Event):void {
var loader:Loader = Loader(event.target.loader);
var info:LoaderInfo = LoaderInfo(loader.contentLoaderInfo);
trace("initHandler: loaderURL=" + info.loaderURL + " url=" + info.url);
}
private function ioErrorHandler(event:IOErrorEvent):void {
trace("ioErrorHandler: " + event);
}
}
}
© 2004-2008 Adobe Systems Incorporated. All rights reserved.
Sun Dec 14 2008, 10:39 PM -08:00