包 | flash.display |
类 | public class Loader |
继承 | Loader DisplayObjectContainer InteractiveObject DisplayObject EventDispatcher Object |
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
load()
方法来启动加载。 被加载的显示对象将作为 Loader 对象的子级添加。
使用 URLLoader 类加载文本或二进制数据。
Loader 类会覆盖其继承的以下方法,因为 Loader 对象只能有一个子显示对象 -- 其加载的显示对象。 调用以下方法将引发异常:addChild()
、addChildAt()
、removeChild()
、removeChildAt()
和 setChildIndex()
。 要删除被加载的显示对象,必须从其父 DisplayObjectContainer 子级数组中删除 Loader 对象。
注意:在 ActionScript 3.0 中使用的不是 ActionScript 2.0 MovieClipLoader 和 LoadVars 类,而是 Loader 和 URLLoader 类。
使用 Loader 类时,应了解 Flash Player 安全模型,如下所示:
System.allowDomain()
或 System.allowInsecureDomain()
方法来允许跨脚本排列,否则另一个安全沙箱中的 SWF 文件不能对它执行跨脚本操作。有关详细信息,请参阅以下部分:
当从不受信任的源(如除 Loader 对象的根 SWF 文件以外的域)加载 SWF 文件时,您可能需要为 Loader 对象定义蒙版,以防止将加载的内容(Loader 对象的子级)绘画到该蒙版之外的舞台部分中,如以下代码所示:
import flash.display.*; import flash.net.URLRequest; var rect:Shape = new Shape(); rect.graphics.beginFill(0xFFFFFF); rect.graphics.drawRect(0, 0, 100, 100); rect.graphics.endFill(); addChild(rect); var ldr:Loader = new Loader(); ldr.mask = rect; var url:String = "http://www.unknown.example.com/content.swf"; var urlReq:URLRequest = new URLRequest(url); ldr.load(urlReq); addChild(ldr);
另请参见
属性 | 定义方 | ||
---|---|---|---|
accessibilityProperties : AccessibilityProperties
此显示对象的当前辅助功能选项。
| DisplayObject | ||
alpha : Number
指示指定对象的 Alpha 透明度值。
| DisplayObject | ||
blendMode : String
BlendMode 类中的一个值,用于指定要使用的混合模式。
| DisplayObject | ||
cacheAsBitmap : Boolean
如果设置为 true,则 Flash Player 将缓存显示对象的内部位图表示形式。
| DisplayObject | ||
constructor : Object
对类对象或给定对象实例的构造函数的引用。
| Object | ||
content : DisplayObject
[read-only]
包含使用 load() 或 loadBytes() 方法加载的 SWF 文件或图像(JPG、PNG 或 GIF)文件的根显示对象。
| Loader | ||
contentLoaderInfo : LoaderInfo
[read-only]
返回与正在加载的对象相对应的 LoaderInfo 对象。
| Loader | ||
contextMenu : ContextMenu
指定与此对象相关联的上下文菜单。
| InteractiveObject | ||
doubleClickEnabled : Boolean
指定此对象是否接收 doubleClick 事件。
| InteractiveObject | ||
filters : Array
包含当前与显示对象关联的每个滤镜对象的索引数组。
| DisplayObject | ||
focusRect : Object
指定此对象是否显示焦点矩形。
| InteractiveObject | ||
height : Number
指示显示对象的高度,以像素为单位。
| DisplayObject | ||
loaderInfo : LoaderInfo
[read-only]
返回一个 LoaderInfo 对象,其中包含加载此显示对象所属的文件的相关信息。
| DisplayObject | ||
mask : DisplayObject
调用显示对象被指定的 mask 对象遮罩。
| DisplayObject | ||
mouseChildren : Boolean
确定对象的子项是否支持鼠标。
| DisplayObjectContainer | ||
mouseEnabled : Boolean
指定此对象是否接收鼠标消息。
| InteractiveObject | ||
mouseX : Number
[read-only]
指示鼠标位置的 x 坐标,以像素为单位。
| DisplayObject | ||
mouseY : Number
[read-only]
指示鼠标位置的 y 坐标,以像素为单位。
| DisplayObject | ||
name : String
指示 DisplayObject 的实例名称。
| DisplayObject | ||
numChildren : int
[read-only]
返回此对象的子项数目。
| DisplayObjectContainer | ||
opaqueBackground : Object
指定显示对象是否由于具有某种背景颜色而不透明。
| DisplayObject | ||
parent : DisplayObjectContainer
[read-only]
指示包含此显示对象的 DisplayObjectContainer 对象。
| DisplayObject | ||
prototype : Object
[static]
对类或函数对象的原型对象的引用。
| Object | ||
root : DisplayObject
[read-only]
对于加载的 SWF 文件中的显示对象,root 属性是此 SWF 文件所表示的显示列表树结构部分中的顶级显示对象。
| DisplayObject | ||
rotation : Number
指示 DisplayObject 实例距其原始方向的旋转程度,以度为单位。
| DisplayObject | ||
scale9Grid : Rectangle
当前有效的缩放网格。
| DisplayObject | ||
scaleX : Number
指示从注册点开始应用的对象的水平缩放比例(百分比)。
| DisplayObject | ||
scaleY : Number
指示从对象注册点开始应用的对象的垂直缩放比例(百分比)。
| DisplayObject | ||
scrollRect : Rectangle
显示对象的滚动矩形范围。
| DisplayObject | ||
stage : Stage
[read-only]
显示对象的舞台。
| DisplayObject | ||
tabChildren : Boolean
确定对象的子项是否支持 Tab 键。
| DisplayObjectContainer | ||
tabEnabled : Boolean
指定此对象是否遵循 Tab 键顺序。
| InteractiveObject | ||
tabIndex : int
指定 SWF 文件中的对象按 Tab 键顺序排列。
| InteractiveObject | ||
textSnapshot : TextSnapshot
[read-only]
返回此 DisplayObjectContainer 实例的 TextSnapshot 对象。
| DisplayObjectContainer | ||
transform : Transform
一个对象,具有与显示对象的矩阵、颜色转换和像素范围有关的属性。
| DisplayObject | ||
visible : Boolean
显示对象是否可见。
| DisplayObject | ||
width : Number
指示显示对象的宽度,以像素为单位。
| DisplayObject | ||
x : Number
指示 DisplayObject 实例相对于父级 DisplayObjectContainer 本地坐标的 x 坐标。
| DisplayObject | ||
y : Number
指示 DisplayObject 实例相对于父级 DisplayObjectContainer 本地坐标的 y 坐标。
| DisplayObject |
方法 | 定义方 | ||
---|---|---|---|
Loader()
创建一个可用于加载文件(如 SWF、JPEG、GIF 或 PNG 文件)的 Loader 对象。
| Loader | ||
将一个 DisplayObject 子实例添加到该 DisplayObjectContainer 实例中。
| DisplayObjectContainer | ||
将一个 DisplayObject 子实例添加到该 DisplayObjectContainer 实例中。
| DisplayObjectContainer | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。
| EventDispatcher | ||
指示安全限制是否会导致出现以下情况:在列表中忽略了使用指定 point 点调用 DisplayObjectContainer.getObjectsUnderPoint() 方法时返回的所有显示对象。
| DisplayObjectContainer | ||
取消当前正在对 Loader 实例执行的 load() 方法操作。
| Loader | ||
确定指定显示对象是 DisplayObjectContainer 实例的子项还是该实例本身。
| DisplayObjectContainer | ||
将事件调度到事件流中。
| EventDispatcher | ||
返回一个矩形,该矩形定义相对于 targetCoordinateSpace 对象坐标系的显示对象区域。
| DisplayObject | ||
返回位于指定索引处的子显示对象实例。
| DisplayObjectContainer | ||
返回具有指定名称的子显示对象。
| DisplayObjectContainer | ||
返回 DisplayObject 的 child 实例的索引位置。
| DisplayObjectContainer | ||
返回对象的数组,这些对象位于指定点下,并且是该 DisplayObjectContainer 实例的子项(或孙子项,依此类推)。
| DisplayObjectContainer | ||
返回一个矩形,该矩形根据 targetCoordinateSpace 参数定义的坐标系定义显示对象的边界,但不包括形状上的任何笔触。
| DisplayObject | ||
将 point 对象从舞台(全局)坐标转换为显示对象的(本地)坐标。
| DisplayObject | ||
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。
| EventDispatcher | ||
指示对象是否已经定义了指定的属性。
| Object | ||
计算显示对象,以确定它是否与 obj 显示对象重叠或相交。
| DisplayObject | ||
计算显示对象,以确定它是否与 x 和 y 参数指定的点重叠或相交。
| DisplayObject | ||
指示 Object 类的实例是否在指定为参数的对象的原型链中。
| Object | ||
将 SWF、JPEG、渐进式 JPEG、非动画 GIF 或 PNG 文件加载到此 Loader 对象的子对象中。
| Loader | ||
从 ByteArray 对象中所存储的二进制数据中加载。
| Loader | ||
将 point 对象从显示对象的(本地)坐标转换为舞台(全局)坐标。
| DisplayObject | ||
指示指定的属性是否存在、是否可枚举。
| Object | ||
从 DisplayObjectContainer 实例的子列表中删除指定的 child DisplayObject 实例。
| DisplayObjectContainer | ||
从 DisplayObjectContainer 的子列表中指定的 index 位置删除子 DisplayObject。
| DisplayObjectContainer | ||
从 EventDispatcher 对象中删除侦听器。
| EventDispatcher | ||
更改现有子项在显示对象容器中的位置。
| DisplayObjectContainer | ||
设置循环操作动态属性的可用性。
| Object | ||
交换两个指定子对象的 Z 轴顺序(从前到后顺序)。
| DisplayObjectContainer | ||
在子级列表中两个指定的索引位置,交换子对象的 Z 轴顺序(前后顺序)。
| DisplayObjectContainer | ||
返回指定对象的字符串表示形式。
| Object | ||
删除此 Loader 对象中使用 load() 方法加载的子项。
| Loader | ||
返回指定对象的原始值。
| Object | ||
检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。
| EventDispatcher |
content | 属性 |
content:DisplayObject
[read-only]
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
包含使用 load()
或 loadBytes()
方法加载的 SWF 文件或图像(JPG、PNG 或 GIF)文件的根显示对象。
public function get content():DisplayObject
SecurityError — 加载的 SWF 文件或图像文件属于您无权访问的安全沙箱。 对于加载的 SWF 文件,可以避免这种情况的方法是:使该文件调用 Security.allowDomain() 方法,或在您调用 load() 或 loadBytes() 方法时使加载文件指定 loaderContext 参数,并将该参数的 securityDomain 属性设置为 SecurityDomain.currentDomain 。
|
另请参见
contentLoaderInfo | 属性 |
contentLoaderInfo:LoaderInfo
[read-only]
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
返回与正在加载的对象相对应的 LoaderInfo 对象。 LoaderInfo 对象在 Loader 对象和加载的内容对象之间共享。 LoaderInfo 对象提供有关加载的文件的加载进度信息和统计。
与加载相关的事件由 Loader 对象的 contentLoaderInfo
属性引用的 LoaderInfo 对象调度。 contentLoaderInfo
属性设置为有效的 LoaderInfo 对象(即使在加载内容之前),这样您就可以在加载前将事件侦听器添加到该对象。
public function get contentLoaderInfo():LoaderInfo
另请参见
Loader | () | 构造函数 |
public function Loader()
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
创建一个可用于加载文件(如 SWF、JPEG、GIF 或 PNG 文件)的 Loader 对象。 调用 load()
方法可将资源加载为 Loader 实例的子级。 然后,可以将 Loader 对象添加到显示列表(例如,通过使用 DisplayObjectContainer 实例的 addChild()
方法)。 这样,资源在加载时会出现在舞台上。
您也可以在“offlist”模式下使用 Loader 实例,这样就不会将 Loader 实例添加到显示列表的显示对象容器中。 在该模式下,Loader 实例可以用于加载包含应用程序的其它模块的 SWF 文件。
要检测何时可以完成 SWF 文件的加载,您可以使用与 Loader 对象的 contentLoaderInfo
属性相关联的 LoaderInfo 对象的事件。 此时,便可执行模块 SWF 文件中的代码以初始化和启动模块。 在 offlist 模式下,还可以使用 Loader 实例来加载包含组件或媒体资源的 SWF 文件。 同时,您可以使用 LoaderInfo 对象事件通知来检测何时完成组件的下载。 此时,应用程序可以通过实例化代表这些组件和资源的 ActionScript 3.0 类来开始使用 SWF 文件库中的组件和媒体资源。
要确定 Loader 对象的状态,请监视与 Loader 对象的 contentLoaderInfo
属性相关联的 LoaderInfo 对象的以下事件:
open
事件。ioError
或 securityError
事件。 progress
事件。complete
事件。 init
事件。 在 complete
处理函数之前调度该事件。 在流式 SWF 文件中,init
事件可以在明显早于 complete
事件的时间发生。 在大多数情况下,请使用 init
处理函数。另请参见
close | () | 方法 |
public function close():void
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
取消当前正在对 Loader 实例执行的 load()
方法操作。
另请参见
load | () | 方法 |
public function load(request:URLRequest, context:LoaderContext = null):void
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
将 SWF、JPEG、渐进式 JPEG、非动画 GIF 或 PNG 文件加载到此 Loader 对象的子对象中。 如果加载 GIF 动画文件,将仅显示第一帧。 由于 Loader 对象可以只包含一个子级,因此,发出后续 load()
请求将终止先前的请求,如果仍然存在未处理的请求,则会开始新的加载。
加载到 Loader 对象中的 SWF 文件或图像会继承该 Loader 对象的父显示对象的位置、旋转和缩放属性。
使用 unload()
方法可删除用此方法加载的影片或图像,或者取消正在进行中的加载操作。
使用 load()
方法时,请考虑 Flash Player 安全模型:
Security.allowDomain()
方法来允许跨脚本排列,否则另一个安全沙箱中的 SWF 文件不能对它执行脚本操作。 object
和 embed
标签的 allowNetworking
参数,防止 SWF 文件使用此方法。有关详细信息,请参阅以下部分:
参数
request:URLRequest — 要加载的 SWF、JPEG、GIF 或 PNG 文件的绝对或相对 URL。 相对路径必须相对于主 SWF 文件。 绝对 URL 必须包括协议引用,如 http:// 或 file:///。 文件名不能包括磁盘驱动器指定。
|
|
context:LoaderContext (default = null ) — LoaderContext 对象,它具有定义下列内容的属性:
有关完整的详细信息,请参阅 LoaderContext 类中的属性说明。 |
complete: — 文件下载完成后由关联的 LoaderInfo 对象调度。 complete 事件总是在 init 事件之后调度。 |
|
httpStatus: — 在通过 HTTP 发出网络请求并且 Flash Player 可以检测到 HTTP 状态代码时,由关联的 LoaderInfo 对象调度。 |
|
init: — 在可以访问被加载的 SWF 文件的属性和方法时,由关联的 LoaderInfo 对象调度。 init 事件总是在 complete 事件之前调度。 |
|
ioError: — 在发生会导致加载操作失败的输入或输出错误时,由关联的 LoaderInfo 对象调度。 |
|
open: — 下载操作开始时由关联的 LoaderInfo 对象调度。 |
|
progress: — 在下载操作进行过程中接收到数据时,由关联的 LoaderInfo 对象调度。 |
|
unload: — 删除被下载的对象时,由关联的 LoaderInfo 对象调度。 |
SecurityError — LoaderContext.securityDomain 的值必须是 null 或 SecurityDomain.currentDomain 。 这说明您只能将被加载的媒体放置在其原始的安全沙箱或您自己的安全沙箱中(后者需要策略文件)。
|
|
SecurityError — 本地 SWF 文件可能只会将 LoaderContext.securityDomain 设置为 null 。 不允许将非本地媒体导入到本地沙箱中,或者将其它本地媒体放置在除其原始沙箱以外的其它位置。
|
|
SecurityError — 如果 context 参数的 applicationDomain 或 securityDomain 属性来自不允许的域。
|
|
SecurityError — 如果本地 SWF 文件尝试使用 context 参数的 securityDomain 属性。
|
另请参见
loadBytes | () | 方法 |
public function loadBytes(bytes:ByteArray, context:LoaderContext = null):void
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
从 ByteArray 对象中所存储的二进制数据中加载。
参数
bytes:ByteArray — 一个 ByteArray 对象。 ByteArray 的内容可以采用受 Loader 类支持的任何文件格式:SWF、GIF、JPEG 或 PNG。
|
|
context:LoaderContext (default = null ) — 一个 LoaderContext 对象。 只应用 LoaderContext 对象的 applicationDomain 属性;不应用 LoaderContext 对象的 checkPolicyFile 和 securityDomain 属性。
|
ArgumentError — 如果 ByteArray 对象的 length 属性不大于 0。
|
|
IllegalOperationError — 如果 context 参数的 checkPolicyFile 或 securityDomain 属性为非空。
|
|
SecurityError — 如果提供的 context 属性的 applicationDomain 属性来自不允许的域。
|
另请参见
unload | () | 方法 |
public function unload():void
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
删除此 Loader 对象中使用 load()
方法加载的子项。 将关联 LoaderInfo 对象的 property
重置为 null
。 不必破坏子级,因为其它对象可能要引用它;但是,它不再是 Loader 对象的子级。
最佳做法是,在卸载子 SWF 文件之前,您应该显式关闭子 SWF 文件的对象(如 LocalConnection、NetConnection、NetStream 和 Sound 对象)中的任何流。 否则,子 SWF 文件中的音频可能会继续播放,即使已卸载子级 SWF 文件。 要关闭子 SWF 文件中的流,请向子文件中添加事件侦听器以侦听 unload
事件。 当父文件调用 Loader.unload()
时,将为子文件调度 unload
事件。 以下代码显示了完成上述任务的方法:
function closeAllStreams(evt:Event) { myNetStream.close(); mySound.close(); myNetConnection.close(); myLocalConnection.close(); } myMovieClip.loaderInfo.addEventListener(Event.UNLOAD, closeAllStreams);
另请参见
url
属性,它是图像文件的位置和名称LoaderExample
构造函数中,创建一个新的 Loader 对象,名为 loader
,该对象随后被传递给 configureListeners()
方法,如步骤 3 所述。request
,该实例带有传递的 url
,这样,就可以知道文件的名称和位置。request
对象传递给 loader
对象的 load()
方法,该方法会将图像加载到显示列表上。click
事件注册 clickHandler
事件侦听器。 在单击鼠标后,便可卸载加载的图像。configureListeners()
方法通过以下方法添加 7 个事件侦听器:completeHandler()
方法。httpStatusHandler()
方法。initHandler()
方法在 completeHandler()
方法之前、progressHandler()
方法之后执行。 通常,init
事件在加载 SWF 文件时更有用。ioErrorHandler()
方法。openHandler()
方法。progressHandler()
方法。unload()
方法卸载图像时,执行 unLoadHandler()
方法。请牢记以下要求:
complete
事件(还可能是 ioError
事件)足够用于加载本地图像。package { import flash.display.Loader; import flash.display.Sprite; import flash.events.*; import flash.net.URLRequest; public class LoaderExample extends Sprite { private var url:String = "Image.gif"; public function LoaderExample() { var loader:Loader = new Loader(); configureListeners(loader.contentLoaderInfo); loader.addEventListener(MouseEvent.CLICK, clickHandler); var request:URLRequest = new URLRequest(url); loader.load(request); addChild(loader); } private function configureListeners(dispatcher:IEventDispatcher):void { dispatcher.addEventListener(Event.COMPLETE, completeHandler); dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler); dispatcher.addEventListener(Event.INIT, initHandler); dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); dispatcher.addEventListener(Event.OPEN, openHandler); dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler); dispatcher.addEventListener(Event.UNLOAD, unLoadHandler); } private function completeHandler(event:Event):void { trace("completeHandler: " + event); } private function httpStatusHandler(event:HTTPStatusEvent):void { trace("httpStatusHandler: " + event); } private function initHandler(event:Event):void { trace("initHandler: " + event); } private function ioErrorHandler(event:IOErrorEvent):void { trace("ioErrorHandler: " + event); } private function openHandler(event:Event):void { trace("openHandler: " + event); } private function progressHandler(event:ProgressEvent):void { trace("progressHandler: bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal); } private function unLoadHandler(event:Event):void { trace("unLoadHandler: " + event); } private function clickHandler(event:MouseEvent):void { trace("clickHandler: " + event); var loader:Loader = Loader(event.target); loader.unload(); } } }
当前页: http://livedocs.adobe.com/flash/9.0_cn/ActionScriptLangRefV3/flash/display/Loader.html