包 | flash.net |
类 | public class URLLoader |
继承 | URLLoader EventDispatcher Object |
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
URLLoader 对象会先从 URL 中下载所有数据,然后才将数据用于 ActionScript。 它会发出有关下载进度的通知,通过 bytesLoaded
和 bytesTotal
属性以及已调度的事件,可以监视下载进度。
使用该方法时,请考虑 Adobe ® Flash ® Player 安全模型:
对于 Flash Player 8 及更高版本:
对于 Flash Player 7 及更高版本:
url
必须位于完全相同的域中。 例如,位于 www.adobe.com 的 SWF 文件只能从同样位于 www.adobe.com 的源中加载数据。 有关详细信息,请参阅以下部分:
如果 SWF 文件在低于 Flash Player 7 版本的播放器中运行,则 url
必须与发出此调用的 SWF 文件位于同一个超级域中。 超级域可以通过删除文件 URL 最左侧的组成部分而得到。 例如,位于 www.adobe.com 的 SWF 文件可以从位于 store.adobe.com 的源中加载数据,这是因为两个文件都在同一个名为 adobe.com 的超级域中。
另请参见
属性 | 定义方 | ||
---|---|---|---|
bytesLoaded : uint = 0
指示加载操作期间到目前为止加载的字节数。
| URLLoader | ||
bytesTotal : uint = 0
指示所下载数据中的字节总数。
| URLLoader | ||
constructor : Object
对类对象或给定对象实例的构造函数的引用。
| Object | ||
data : *
从加载操作接收的数据。
| URLLoader | ||
dataFormat : String = "text"
控制是以文本 (URLLoaderDataFormat.TEXT)、原始二进制数据 (URLLoaderDataFormat.BINARY) 还是 URL 编码变量 (URLLoaderDataFormat.VARIABLES) 形式接收下载的数据。
| URLLoader | ||
prototype : Object
[static]
对类或函数对象的原型对象的引用。
| Object |
方法 | 定义方 | ||
---|---|---|---|
URLLoader(request:URLRequest = null)
创建 URLLoader 对象。
| URLLoader | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。
| EventDispatcher | ||
关闭进行中的加载操作。
| URLLoader | ||
将事件调度到事件流中。
| EventDispatcher | ||
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。
| EventDispatcher | ||
指示对象是否已经定义了指定的属性。
| Object | ||
指示 Object 类的实例是否在指定为参数的对象的原型链中。
| Object | ||
从指定的 URL 发送和加载数据。
| URLLoader | ||
指示指定的属性是否存在、是否可枚举。
| Object | ||
从 EventDispatcher 对象中删除侦听器。
| EventDispatcher | ||
设置循环操作动态属性的可用性。
| Object | ||
返回指定对象的字符串表示形式。
| Object | ||
返回指定对象的原始值。
| Object | ||
检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。
| EventDispatcher |
事件 | 摘要 | 定义方 | ||
---|---|---|---|---|
Flash Player 获得操作系统焦点并变为活动状态时调度。 | EventDispatcher | |||
在对所有已接收数据进行解码并将其放在 URLLoader 对象的 data 属性中以后调度。 | URLLoader | |||
Flash Player 失去操作系统焦点并变为非活动状态时调度。 | EventDispatcher | |||
若对 URLLoader.load() 的调用尝试通过 HTTP 访问数据并且当前的 Flash Player 环境能够检测并返回该请求的状态代码,则进行调度。 | URLLoader | |||
若对 URLLoader.load() 的调用导致致命错误并因此终止了下载,则进行调度。 | URLLoader | |||
在调用 URLLoader.load() 方法之后开始下载操作时调度。 | URLLoader | |||
在下载操作过程中收到数据时调度。 | URLLoader | |||
若对 URLLoader.load() 的调用尝试从安全沙箱外部的服务器加载数据,则进行调度。 | URLLoader |
bytesLoaded | 属性 |
public var bytesLoaded:uint = 0
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
指示加载操作期间到目前为止加载的字节数。
bytesTotal | 属性 |
public var bytesTotal:uint = 0
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
指示所下载数据中的字节总数。 正在进行加载操作时该属性包含 0,完成操作时会填充该属性。
data | 属性 |
public var data:*
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
从加载操作接收的数据。 只有完成加载操作时,才会填充该属性。 该数据的格式取决于 dataFormat
属性的设置:
如果 dataFormat
属性是 URLLoaderDataFormat.TEXT
,则所接收的数据是一个包含已加载文件文本的字符串。
如果 dataFormat
属性是 URLLoaderDataFormat.BINARY
,则所接收的数据是一个包含原始二进制数据的 ByteArray 对象。
如果 dataFormat
属性是 URLLoaderDataFormat.VARIABLES
,则所接收的数据是一个包含 URL 编码变量的 URLVariables 对象。
另请参见
dataFormat | 属性 |
public var dataFormat:String = "text"
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
控制是以文本 (URLLoaderDataFormat.TEXT
)、原始二进制数据 (URLLoaderDataFormat.BINARY
) 还是 URL 编码变量 (URLLoaderDataFormat.VARIABLES
) 接收下载的数据。
如果 dataFormat
属性的值是 URLLoaderDataFormat.TEXT
,则所接收的数据是一个包含已加载文件文本的字符串。
如果 dataFormat
属性的值是 URLLoaderDataFormat.BINARY
,则所接收的数据是一个包含原始二进制数据的 ByteArray 对象。
如果 dataFormat
属性的值是 URLLoaderDataFormat.VARIABLES
,则所接收的数据是一个包含 URL 编码变量的 URLVariables 对象。
默认值为 URLLoaderDataFormat.TEXT
.
另请参见
URLLoader | () | 构造函数 |
public function URLLoader(request:URLRequest = null)
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
创建 URLLoader 对象。
参数request:URLRequest (default = null ) — 一个 URLRequest 对象,指定要下载的 URL。 如果省略该参数,则不开始加载操作。 如果已指定参数,则立即开始加载操作(有关详细信息,请参阅 load 条目)。
|
另请参见
close | () | 方法 |
public function close():void
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
关闭进行中的加载操作。 任何正在进行中的加载操作将立即终止。 如果当前未对 URL 进行流式处理,将引发无效流错误。
load | () | 方法 |
public function load(request:URLRequest):void
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
从指定的 URL 发送和加载数据。 可以以文本、原始二进制数据或 URL 编码变量格式接收数据,这取决于为 dataFormat
属性所设置的值。 请注意 dataFormat
属性的默认值为文本。 如果想将数据发送至指定的 URL,则可以在 URLRequest 对象中设置 data
属性。
注意:如果要加载的文件包含非 ASCII 字符(在许多非英语的语言中出现),则建议使用 UTF-8 或 UTF-16 编码(而不是 ASCII 等非 Unicode 格式)来保存文件。
使用此方法时,请考虑 Flash Player 安全模型:
在 Flash Player 9 及更高版本中,可以在包含 SWF 内容的 HTML 页中设置 object
和 embed
标签的 allowNetworking
参数来防止 SWF 文件使用此方法。
对于 Flash Player 8 及更高版本:
对于 Flash Player 7 及更高版本网站,可通过跨域策略文件允许对资源进行跨域访问。 如果任何版本的 SWF 文件在 Flash Player 7 及更高版本中运行,则 url
必须位于完全相同的域中。 例如,位于 www.adobe.com 的 SWF 文件只能从同样位于 www.adobe.com 的源中加载数据。
有关详细信息,请参阅以下部分:
如果 SWF 文件在低于 Flash Player 7 版本的播放器中运行,则 url
必须与发出此调用的 SWF 文件位于同一个超级域中。 超级域可以通过删除文件 URL 最左侧的组成部分而得到。 例如,位于 www.adobe.com 的 SWF 文件可以从位于 store.adobe.com 的源中加载数据,这是因为这两个文件都在同一个名为 adobe.com 的超级域中。
参数
request:URLRequest — 一个 URLRequest 对象,指定要下载的 URL。
|
complete: — 在成功加载数据后调度。 |
|
httpStatus: — 如果通过 HTTP 进行访问,并且当前 Flash Player 环境支持获得状态代码,则除了 complete 或 error 事件,还可以接收到 HTTPStatusEvent 事件。 |
|
ioError: — 无法完成加载操作。 |
|
progress: — 在下载操作过程中收到数据时调度。 |
|
securityError: — 加载操作尝试从调用方安全沙箱外部的服务器检索数据。 可以通过在服务器上使用策略文件来解决此问题。 |
|
open: — 在加载操作开始时调度。 |
ArgumentError — URLRequest.requestHeader 对象不能包含某些被禁用的 HTTP 请求标头。 有关详细信息,请参阅 URLRequestHeader 类的描述。
|
|
MemoryError — 发生此错误的原因有:1) Flash Player 无法将 URLRequest.data 参数从 UTF8 转换为 MBCS。 若传递给 load() 的 URLRequest 对象设置为执行 GET 操作并且 System.useCodePage 设置为 true ,就会发生该错误。 2) Flash Player 无法为 POST 数据分配内存。 如果传递给 load 的 URLRequest 对象设置为执行 POST 操作,将发生该错误。
|
|
SecurityError — 本地不受信任的 SWF 文件可能无法与 Internet 进行通信。 可通过将此 SWF 文件重新分类为只能与远程内容交互或受信任来解决此问题。
|
|
TypeError — 所传递的请求参数值或 URLRequest 对象的 URLRequest.url 属性为 null 。
|
另请参见
complete | 事件 |
flash.events.Event
flash.events.Event.COMPLETE
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
在对所有已接收数据进行解码并将其放在 URLLoader 对象的 data
属性中以后调度。 调度该事件后,可以访问已接收的数据。
complete
事件对象的 type
属性值。
此事件具有以下属性:
属性 | 值 |
---|---|
bubbles | false |
cancelable | false ;没有要取消的默认行为。 |
currentTarget | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | 已完成加载的网络对象。 |
另请参见
httpStatus | 事件 |
flash.events.HTTPStatusEvent
flash.events.HTTPStatusEvent.HTTP_STATUS
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
若对 URLLoader.load()
的调用尝试通过 HTTP 访问数据并且当前的 Flash Player 环境能够检测并返回该请求的状态代码,则进行调度。 (有些浏览器环境可能无法提供此信息。) 请注意:在发送任何 complete
或 error
事件之前还将发送 httpStatus
事件(如果有)。
httpStatus
事件对象的 type
属性值。
此事件具有以下属性:
属性 | 值 |
---|---|
bubbles | false |
cancelable | false ;没有要取消的默认行为。 |
currentTarget | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
status | 由服务器返回的 HTTP 状态代码。 |
target | 接收 HTTP 状态代码的网络对象。 |
另请参见
ioError | 事件 |
flash.events.IOErrorEvent
flash.events.IOErrorEvent.IO_ERROR
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
若对 URLLoader.load()
的调用导致致命错误并因此终止了下载,则进行调度。
ioError
事件对象的 type
属性值。
此事件具有以下属性:
属性 | 值 |
---|---|
bubbles | false |
cancelable | false ;没有要取消的默认行为。 |
currentTarget | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | 发生输入/输出错误的网络对象。 |
text | 要显示为错误消息的文本。 |
另请参见
open | 事件 |
flash.events.Event
flash.events.Event.OPEN
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
在调用 URLLoader.load()
方法和开始下载操作时调度。
open
事件对象的 type
属性值。
此事件具有以下属性:
属性 | 值 |
---|---|
bubbles | false |
cancelable | false ;没有要取消的默认行为。 |
currentTarget | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | 已打开连接的网络对象。 |
另请参见
progress | 事件 |
flash.events.ProgressEvent
flash.events.ProgressEvent.PROGRESS
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
在下载操作过程中收到数据时调度。
请注意,对于 URLLoader 对象,在完全接收数据前无法访问该数据。 因此,该 progress 事件仅用作有关下载进展的通知。 若要在完整下载前访问该数据,请使用 URLStream 对象。
定义progress
事件对象的 type
属性值。
此事件具有以下属性:
属性 | 值 |
---|---|
bubbles | false |
bytesLoaded | 在侦听器处理事件时加载的项数或字节数。 |
bytesTotal | 如果加载进程成功,最终将加载的项目或字节总数。 |
cancelable | false ;没有要取消的默认行为。 |
currentTarget | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | 报告进度的网络对象。 |
另请参见
securityError | 事件 |
flash.events.SecurityErrorEvent
flash.events.SecurityErrorEvent.SECURITY_ERROR
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
若对 URLLoader.load()
的调用尝试从安全沙箱外部的服务器加载数据,则进行调度。
SecurityErrorEvent.SECURITY_ERROR
常量定义 securityError
事件对象的 type
属性值。
此事件具有以下属性:
属性 | 值 |
---|---|
bubbles | false |
cancelable | false ;没有要取消的默认行为。 |
currentTarget | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | 报告安全错误的网络对象。 |
text | 要显示为错误消息的文本。 |
另请参见
注意:若要运行此示例,请将名为 urlLoaderExample.txt 的文件与 SWF 文件放在同一目录下。 该文件应仅包含以下文本行:answer=42&question=unknown
该示例代码执行以下操作:
loader
的 URLLoader 实例和名为 request
URLRequest 的实例,后者包含要加载的文件的位置和名称。loader
对象被传递给 configureListeners()
方法,该方法可为每个受支持的 URLLoader 事件添加侦听器。request
对象被传递给 loader.load()
,该方法可加载文本文件。Event.COMPLETE event
,同时触发 completeHandler()
方法。 completeHandler()
方法通过从该文件中加载的文本创建 URLVariables 对象。 URLVariables 对象将 URL 编码的名称/值对转换成 ActionScript 属性,从而更便于处理加载的数据。package { import flash.display.Sprite; import flash.events.*; import flash.net.*; public class URLLoaderExample extends Sprite { public function URLLoaderExample() { var loader:URLLoader = new URLLoader(); configureListeners(loader); var request:URLRequest = new URLRequest("urlLoaderExample.txt"); try { loader.load(request); } catch (error:Error) { trace("Unable to load requested document."); } } private function configureListeners(dispatcher:IEventDispatcher):void { dispatcher.addEventListener(Event.COMPLETE, completeHandler); dispatcher.addEventListener(Event.OPEN, openHandler); dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler); dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler); dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); } private function completeHandler(event:Event):void { var loader:URLLoader = URLLoader(event.target); trace("completeHandler: " + loader.data); var vars:URLVariables = new URLVariables(loader.data); trace("The answer is " + vars.answer); } private function openHandler(event:Event):void { trace("openHandler: " + event); } private function progressHandler(event:ProgressEvent):void { trace("progressHandler loaded:" + event.bytesLoaded + " total: " + event.bytesTotal); } private function securityErrorHandler(event:SecurityErrorEvent):void { trace("securityErrorHandler: " + event); } private function httpStatusHandler(event:HTTPStatusEvent):void { trace("httpStatusHandler: " + event); } private function ioErrorHandler(event:IOErrorEvent):void { trace("ioErrorHandler: " + event); } } }
当前页: http://livedocs.adobe.com/flash/9.0_cn/ActionScriptLangRefV3/flash/net/URLLoader.html