flash.net
public class URLLoader
继承URLLoader Inheritance EventDispatcher Inheritance Object

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

URLLoader 类以文本、二进制数据或 URL 编码变量的形式从 URL 下载数据。 在下载文本文件、XML 或其它用于动态数据驱动应用程序的信息时,它很有用。

URLLoader 对象会先从 URL 中下载所有数据,然后才将数据用于 ActionScript。 它会发出有关下载进度的通知,通过 bytesLoadedbytesTotal 属性以及已调度的事件,可以监视下载进度。

使用该方法时,请考虑 Adobe ® Flash ® Player 安全模型:

对于 Flash Player 8 及更高版本:

对于 Flash Player 7 及更高版本:

有关详细信息,请参阅以下部分:

如果 SWF 文件在低于 Flash Player 7 版本的播放器中运行,则 url 必须与发出此调用的 SWF 文件位于同一个超级域中。 超级域可以通过删除文件 URL 最左侧的组成部分而得到。 例如,位于 www.adobe.com 的 SWF 文件可以从位于 store.adobe.com 的源中加载数据,这是因为两个文件都在同一个名为 adobe.com 的超级域中。

查看示例

另请参见

URLRequest
URLVariables
URLStream
读取外部 XML 文档
处理外部数据



公共 属性
 属性定义方
  bytesLoaded : uint = 0
指示加载操作期间到目前为止加载的字节数。
URLLoader
  bytesTotal : uint = 0
指示所下载数据中的字节总数。
URLLoader
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
  data : *
从加载操作接收的数据。
URLLoader
  dataFormat : String = "text"
控制是以文本 (URLLoaderDataFormat.TEXT)、原始二进制数据 (URLLoaderDataFormat.BINARY) 还是 URL 编码变量 (URLLoaderDataFormat.VARIABLES) 形式接收下载的数据。
URLLoader
 Inheritedprototype : Object
[static] 对类或函数对象的原型对象的引用。
Object
公共 方法
 方法定义方
  
URLLoader(request:URLRequest = null)
创建 URLLoader 对象。
URLLoader
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。
EventDispatcher
  
关闭进行中的加载操作。
URLLoader
 Inherited
将事件调度到事件流中。
EventDispatcher
 Inherited
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。
EventDispatcher
 Inherited
指示对象是否已经定义了指定的属性。
Object
 Inherited
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
  
load(request:URLRequest):void
从指定的 URL 发送和加载数据。
URLLoader
 Inherited
指示指定的属性是否存在、是否可枚举。
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
从 EventDispatcher 对象中删除侦听器。
EventDispatcher
 Inherited
设置循环操作动态属性的可用性。
Object
 Inherited
返回指定对象的字符串表示形式。
Object
 Inherited
返回指定对象的原始值。
Object
 Inherited
检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。
EventDispatcher
事件
 事件摘要定义方
 Inherited Flash Player 获得操作系统焦点并变为活动状态时调度。EventDispatcher
   在对所有已接收数据进行解码并将其放在 URLLoader 对象的 data 属性中以后调度。URLLoader
 Inherited 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 页中设置 objectembed 标签的 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:Event — 在成功加载数据后调度。
 
httpStatus:HTTPStatusEvent — 如果通过 HTTP 进行访问,并且当前 Flash Player 环境支持获得状态代码,则除了 completeerror 事件,还可以接收到 HTTPStatusEvent 事件。
 
ioError:IOErrorEvent — 无法完成加载操作。
 
progress:ProgressEvent — 在下载操作过程中收到数据时调度。
 
securityError:SecurityErrorEvent — 加载操作尝试从调用方安全沙箱外部的服务器检索数据。 可以通过在服务器上使用策略文件来解决此问题。
 
open:Event — 在加载操作开始时调度。

引发
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
Event.type property = flash.events.Event.COMPLETE

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

在对所有已接收数据进行解码并将其放在 URLLoader 对象的 data 属性中以后调度。 调度该事件后,可以访问已接收的数据。

定义 complete 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubblesfalse
cancelablefalse;没有要取消的默认行为。
currentTarget当前正在使用某个事件侦听器处理 Event 对象的对象。
target已完成加载的网络对象。

另请参见

httpStatus 事件  
事件对象类型: flash.events.HTTPStatusEvent
HTTPStatusEvent.type property = flash.events.HTTPStatusEvent.HTTP_STATUS

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

若对 URLLoader.load() 的调用尝试通过 HTTP 访问数据并且当前的 Flash Player 环境能够检测并返回该请求的状态代码,则进行调度。 (有些浏览器环境可能无法提供此信息。) 请注意:在发送任何 completeerror 事件之前还将发送 httpStatus 事件(如果有)。

定义 httpStatus 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubblesfalse
cancelablefalse;没有要取消的默认行为。
currentTarget当前正在使用某个事件侦听器处理 Event 对象的对象。
status由服务器返回的 HTTP 状态代码。
target接收 HTTP 状态代码的网络对象。

另请参见

ioError 事件  
事件对象类型: flash.events.IOErrorEvent
IOErrorEvent.type property = flash.events.IOErrorEvent.IO_ERROR

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

若对 URLLoader.load() 的调用导致致命错误并因此终止了下载,则进行调度。

定义 ioError 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubblesfalse
cancelablefalse;没有要取消的默认行为。
currentTarget当前正在使用某个事件侦听器处理 Event 对象的对象。
target发生输入/输出错误的网络对象。
text要显示为错误消息的文本。

另请参见

open 事件  
事件对象类型: flash.events.Event
Event.type property = flash.events.Event.OPEN

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

在调用 URLLoader.load() 方法和开始下载操作时调度。

定义 open 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubblesfalse
cancelablefalse;没有要取消的默认行为。
currentTarget当前正在使用某个事件侦听器处理 Event 对象的对象。
target已打开连接的网络对象。

另请参见

progress 事件  
事件对象类型: flash.events.ProgressEvent
ProgressEvent.type property = flash.events.ProgressEvent.PROGRESS

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

在下载操作过程中收到数据时调度。

请注意,对于 URLLoader 对象,在完全接收数据前无法访问该数据。 因此,该 progress 事件仅用作有关下载进展的通知。 若要在完整下载前访问该数据,请使用 URLStream 对象。

定义 progress 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubblesfalse
bytesLoaded在侦听器处理事件时加载的项数或字节数。
bytesTotal如果加载进程成功,最终将加载的项目或字节总数。
cancelablefalse;没有要取消的默认行为。
currentTarget当前正在使用某个事件侦听器处理 Event 对象的对象。
target报告进度的网络对象。

另请参见

securityError 事件  
事件对象类型: flash.events.SecurityErrorEvent
SecurityErrorEvent.type property = flash.events.SecurityErrorEvent.SECURITY_ERROR

语言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

若对 URLLoader.load() 的调用尝试从安全沙箱外部的服务器加载数据,则进行调度。

SecurityErrorEvent.SECURITY_ERROR 常量定义 securityError 事件对象的 type 属性值。

此事件具有以下属性:

属性
bubblesfalse
cancelablefalse;没有要取消的默认行为。
currentTarget当前正在使用某个事件侦听器处理 Event 对象的对象。
target报告安全错误的网络对象。
text要显示为错误消息的文本。

另请参见

示例 如何使用示例

下例加载并显示在本地文本文件中找到的数据。 它还会跟踪事件处理信息。

注意:若要运行此示例,请将名为 urlLoaderExample.txt 的文件与 SWF 文件放在同一目录下。 该文件应仅包含以下文本行:answer=42&question=unknown

该示例代码执行以下操作:

  1. 该构造函数创建名为 loader 的 URLLoader 实例和名为 request URLRequest 的实例,后者包含要加载的文件的位置和名称。
  2. loader 对象被传递给 configureListeners() 方法,该方法可为每个受支持的 URLLoader 事件添加侦听器。
  3. 然后,request 对象被传递给 loader.load(),该方法可加载文本文件。
  4. 当 URLLoader 完成文本文件的加载时,将引发 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