| 包 | flash.net |
| 类 | public class URLLoader |
| 继承 | URLLoader EventDispatcher Object |
| 子类 | AVURLLoader |
| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
URLLoader 对象会先从 URL 中下载所有数据,然后才将数据用于应用程序中的代码。它会发出有关下载进度的通知,通过 bytesLoaded 和 bytesTotal 属性以及已调度的事件,可以监视下载进度。
在加载非常大的视频文件(如 FLV 的视频文件)时,可能会出现内存不足错误。
当在应用程序安全沙箱以外的安全沙箱中的 Flash Player 和 AIR 应用程序内容中使用此类时,请考虑以下安全模型:
- 只能与本地文件系统内容交互的沙箱中的 SWF 文件无法加载网络沙箱中的资源所包含的数据,也无法为该资源提供数据。
- 默认情况下,执行调用的 SWF 文件和加载的 URL 必须在同一域中。例如,位于 www.adobe.com 的 SWF 文件只能从同样位于 www.adobe.com 的源中加载数据。要从不同的域中加载数据,请在承载数据的服务器上放置一个 URL 策略文件。
有关安全性的详细信息,请参阅 Flash Player 开发人员中心主题:安全性。
相关 API 元素
| 属性 | 由以下参数定义 | ||
|---|---|---|---|
| bytesLoaded : uint = 0
表示加载操作期间到目前为止加载的字节数。 | URLLoader | ||
| bytesTotal : uint = 0
表示所下载数据中的字节总数。 | URLLoader | ||
![]() | constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | |
| data : *
从加载操作接收的数据。 | URLLoader | ||
| dataFormat : String = "text"
控制是以文本 (URLLoaderDataFormat.TEXT)、原始二进制数据 (URLLoaderDataFormat.BINARY) 还是 URL 编码变量 (URLLoaderDataFormat.VARIABLES) 形式接收下载的数据。 | URLLoader | ||
| 方法 | 由以下参数定义 | ||
|---|---|---|---|
URLLoader(request:URLRequest = null)
创建 URLLoader 对象。 | URLLoader | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void [覆盖]
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 | URLLoader | ||
关闭进行中的加载操作。 | URLLoader | ||
![]() |
将事件调度到事件流中。 | EventDispatcher | |
![]() |
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 | EventDispatcher | |
![]() |
表示对象是否已经定义了指定的属性。 | Object | |
![]() |
表示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | |
从指定的 URL 发送和加载数据。 | URLLoader | ||
![]() |
表示指定的属性是否存在、是否可枚举。 | Object | |
![]() |
从 EventDispatcher 对象中删除侦听器。 | EventDispatcher | |
![]() |
设置循环操作动态属性的可用性。 | Object | |
![]() |
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。 | Object | |
![]() |
返回指定对象的字符串表示形式。 | Object | |
![]() |
返回指定对象的原始值。 | Object | |
![]() |
检查是否用此 EventDispatcher 对象或其任何祖代为指定事件类型注册了事件侦听器。 | EventDispatcher | |
| 事件 | 摘要 | 由以下参数定义 | ||
|---|---|---|---|---|
![]() | [广播事件] Flash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时将调度此事件。 | EventDispatcher | ||
| 在对所有已接收数据进行解码并将其放在 URLLoader 对象的 data 属性中以后调度。 | URLLoader | |||
![]() | [广播事件] Flash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时将调度此事件。 | EventDispatcher | ||
| 当对 load() 方法的调用尝试通过 HTTP 访问数据,并且 Adobe AIR 可以检测并返回请求的状态代码时调度。 | URLLoader | |||
| 当对 URLLoader.load() 的调用尝试通过 HTTP 访问数据时调度。 | URLLoader | |||
| 若对 URLLoader.load() 的调用导致致命错误并因此终止了下载,则进行调度。 | URLLoader | |||
| 在调用 URLLoader.load() 方法之后开始下载操作时调度。 | URLLoader | |||
| 在下载操作过程中收到数据时调度。 | URLLoader | |||
| 若对 URLLoader.load() 的调用尝试从安全沙箱外部的服务器加载数据,则进行调度。 | URLLoader | |||
bytesLoaded | 属性 |
public var bytesLoaded:uint = 0| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
表示加载操作期间到目前为止加载的字节数。
bytesTotal | 属性 |
public var bytesTotal:uint = 0| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
表示所下载数据中的字节总数。正在进行加载操作时该属性包含 0,完成操作时会填充该属性。另外,丢失的 Content-Length 标题将会导致 bytesTotal 不确定。
data | 属性 |
public var data:*| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
从加载操作接收的数据。只有完成加载操作时,才会填充该属性。该数据的格式取决于 dataFormat 属性的设置:
如果 dataFormat 属性是 URLLoaderDataFormat.TEXT,则所接收的数据是一个包含已加载文件文本的字符串。
如果 dataFormat 属性是 URLLoaderDataFormat.BINARY,则所接收的数据是一个包含原始二进制数据的 ByteArray 对象。
如果 dataFormat 属性是 URLLoaderDataFormat.VARIABLES,则所接收的数据是一个包含 URL 编码变量的 URLVariables 对象。
相关 API 元素
示例 ( 如何使用本示例 )
//params.txt is a local file that includes: firstName=Tom&lastName=Jones
var lbl:TextField = new TextField();
var urlRequest:URLRequest = new URLRequest("params.txt");
var urlLoader:URLLoader = new URLLoader();
urlLoader.dataFormat = URLLoaderDataFormat.VARIABLES;
urlLoader.addEventListener(Event.COMPLETE, urlLoader_complete);
urlLoader.load(urlRequest);
function urlLoader_complete(evt:Event):void {
lbl.text = urlLoader.data.lastName + "," + urlLoader.data.firstName;
addChild(lbl);
}
dataFormat | 属性 |
public var dataFormat:String = "text"| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
控制是以文本 (URLLoaderDataFormat.TEXT)、原始二进制数据 (URLLoaderDataFormat.BINARY) 还是 URL 编码变量 (URLLoaderDataFormat.VARIABLES) 接收下载的数据。
如果 dataFormat 属性的值是 URLLoaderDataFormat.TEXT,则所接收的数据是一个包含已加载文件文本的字符串。
如果 dataFormat 属性的值是 URLLoaderDataFormat.BINARY,则所接收的数据是一个包含原始二进制数据的 ByteArray 对象。
如果 dataFormat 属性的值是 URLLoaderDataFormat.VARIABLES,则所接收的数据是一个包含 URL 编码变量的 URLVariables 对象。
默认值为 URLLoaderDataFormat.TEXT。
相关 API 元素
示例 ( 如何使用本示例 )
var PATH:String = "lorem.txt";
var urlRequest:URLRequest = new URLRequest(PATH);
var urlLoader:URLLoader = new URLLoader();
urlLoader.dataFormat = URLLoaderDataFormat.TEXT; // default
urlLoader.addEventListener(Event.COMPLETE, urlLoader_complete);
urlLoader.load(urlRequest);
function urlLoader_complete(evt:Event):void {
textArea.text = urlLoader.data;
}
URLLoader | () | 构造函数 |
public function URLLoader(request:URLRequest = null)| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
创建 URLLoader 对象。
参数request:URLRequest (default = null) — 一个 URLRequest 对象,指定要下载的 URL。如果省略该参数,则不开始加载操作。如果已指定参数,则立即开始加载操作(有关详细信息,请参阅 load 条目)。
|
相关 API 元素
addEventListener | () | 方法 |
override public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。可以为特定类型的事件、阶段和优先级在显示列表中的所有节点上注册事件侦听器。
成功注册一个事件侦听器后,无法通过额外调用 addEventListener() 来更改其优先级。要更改侦听器的优先级,必须首先调用 removeListener()。然后,可以使用新的优先级再次注册该侦听器。
请记住,注册该侦听器后,如果继续调用具有不同 type 或 useCapture 值的 addEventListener(),则会创建单独的侦听器注册。例如,如果首先注册 useCapture 设置为 true 的侦听器,则该侦听器只在捕获阶段进行侦听。如果使用同一个侦听器对象再次调用 addEventListener(),并将 useCapture 设置为 false,那么便会拥有两个单独的侦听器:一个在捕获阶段进行侦听,另一个在目标和冒泡阶段进行侦听。
不能只为目标阶段或冒泡阶段注册事件侦听器。这些阶段在注册期间是成对出现的,因为冒泡阶段只适用于目标节点的祖代。
如果不再需要某个事件侦听器,可调用 removeEventListener() 删除它,否则会产生内存问题。事件侦听器不会自动从内存中删除,因为只要调度对象存在,垃圾回收器就不会删除侦听器(除非 useWeakReference 参数设置为 true)。
复制 EventDispatcher 实例时并不复制其中附加的事件侦听器。(如果新近创建的节点需要一个事件侦听器,必须在创建该节点后附加该侦听器。)但是,如果移动 EventDispatcher 实例,则其中附加的事件侦听器也会随之移动。
如果在正在处理事件的节点上注册事件侦听器,则不会在当前阶段触发事件侦听器,但会在事件流的稍后阶段触发,如冒泡阶段。
如果从正在处理事件的节点中删除事件侦听器,则该事件侦听器仍由当前操作触发。删除事件侦听器后,决不会再次调用该事件侦听器(除非再次注册以备将来处理)。
参数
type:String — 事件的类型。
| |
listener:Function — 处理事件的侦听器函数。此函数必须接受 Event 对象作为其唯一的参数,并且不能返回任何结果,如下面的示例所示:
function(evt:Event):void 函数可以有任何名称。 | |
useCapture:Boolean (default = false) —
确定侦听器是运行于捕获阶段还是运行于目标和冒泡阶段。如果将 useCapture 设置为 true,则侦听器只在捕获阶段处理事件,而不在目标或冒泡阶段处理事件。如果 useCapture 为 false,则侦听器只在目标或冒泡阶段处理事件。要在所有三个阶段都侦听事件,请调用 addEventListener 两次:一次将 useCapture 设置为 true,一次将 useCapture 设置为 false。
| |
priority:int (default = 0) — 事件侦听器的优先级。优先级由一个带符号的 32 位整数指定。数字越大,优先级越高。优先级为 n 的所有侦听器会在优先级为 n -1 的侦听器之前得到处理。如果两个或更多个侦听器共享相同的优先级,则按照它们的添加顺序进行处理。默认优先级为 0。
| |
useWeakReference:Boolean (default = false) — 确定对侦听器的引用是强引用,还是弱引用。强引用(默认值)可防止您的侦听器被当作垃圾回收。弱引用则没有此作用。 类级别成员函数不属于垃圾回收的对象,因此可以对类级别成员函数将 |
close | () | 方法 |
public function close():void| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
关闭进行中的加载操作。任何正在进行中的加载操作将立即终止。如果当前未对 URL 进行流式处理,将引发无效流错误。
load | () | 方法 |
public function load(request:URLRequest):void| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
从指定的 URL 发送和加载数据。可以以文本、原始二进制数据或 URL 编码变量格式接收数据,这取决于为 dataFormat 属性所设置的值。请注意 dataFormat 属性的默认值为文本。如果想将数据发送至指定的 URL,则可以在 URLRequest 对象中设置 data 属性。
注意:如果要加载的文件包含非 ASCII 字符(在许多非英语的语言中出现),则建议使用 UTF-8 或 UTF-16 编码(而不是 ASCII 等非 Unicode 格式)来保存文件。
只能与本地文件系统内容交互的沙箱中的 SWF 文件无法加载网络沙箱中的资源所包含的数据,也无法为该资源提供数据。
默认情况下,执行调用的 SWF 文件和加载的 URL 必须在同一域中。例如,位于 www.adobe.com 的 SWF 文件只能从同样位于 www.adobe.com 的源中加载数据。要从不同的域中加载数据,请在承载数据的服务器上放置一个 URL 策略文件。
无法连接到常用的保留端口。有关已阻止的端口的完整列表,请参阅《ActionScript 3.0 开发人员指南》中的“限制网络 API”。
在 Flash Player 10 和更高版本中,如果使用包含上载(由 POST 体内的“content-disposition”标头中的“filename”参数表示)的 multipart Content-Type(例如“multipart/form-data”),则 POST 操作会受应用于上载的安全规则的约束:
- 必须执行 POST 操作以响应用户启动的操作(如鼠标单击或按键)。
- 如果 POST 操作是跨域的(POST 目标与发送 POST 请求的 SWF 文件不在同一台服务器上),则目标服务器必须提供一个允许跨域访问的 URL 策略文件。
另外,对于任何 multipart Content-Type,语法必须有效(根据 RFC2046 标准)。如果语法无效,则 POST 操作受应用于上载的安全规则约束。
有关安全性的详细信息,请参阅 Flash Player 开发人员中心主题:安全性。
参数
request:URLRequest — 一个 URLRequest 对象,指定要下载的 URL。
|
事件
complete: — 在成功加载数据后调度。
| |
httpStatus: — 如果通过 HTTP 进行访问,并且当前 Flash Player 环境支持获得状态代码,则除了 complete 或 error 事件,还可以接收到这些事件。
| |
ioError: — 无法完成加载操作。
| |
progress: — 在下载操作过程中收到数据时调度。
| |
securityError: — 加载操作尝试从调用方安全沙箱外部的服务器检索数据。可以通过在服务器上使用策略文件来解决此问题。
| |
securityError: — 加载操作尝试加载 SWZ 文件(一个 Adobe 平台组件),但是证书无效或摘要与组件不匹配。
| |
open: — 在加载操作开始时调度。
| |
httpResponseStatus: — 在对 load() 方法的调用试图通过 HTTP 访问数据,并且 Adobe AIR 可以检测并返回请求的状态代码时调度。
|
引发
ArgumentError — URLRequest.requestHeader 对象不能包含某些被禁用的 HTTP 请求标头。有关详细信息,请参阅 URLRequestHeader 类的描述。
| |
MemoryError — 发生此错误的原因有:1) Flash Player 或 AIR 无法将 URLRequest.data 参数从 UTF8 转换为 MBCS。若传递给 load() 的 URLRequest 对象设置为执行 GET 操作并且 System.useCodePage 设置为 true,就会发生该错误。2) Flash Player 或 AIR 无法为 POST 数据分配内存。如果传递给 load 的 URLRequest 对象设置为执行 POST 操作,将发生该错误。
| |
SecurityError — 本地不受信任的 文件可能无法与 Internet 进行通信。可通过将此 文件重新分类为只能与远程内容交互或受信任来解决此问题。
| |
SecurityError — 正在尝试连接到常用的保留端口。有关已阻止的端口的完整列表,请参阅《ActionScript 3.0 开发人员指南》中的“限制网络 API”。
| |
TypeError — 所传递的请求参数值或 URLRequest 对象的 URLRequest.url 属性为 null。
|
相关 API 元素
示例 ( 如何使用本示例 )
将创建一个用于指定 XML 文件位置的 URLRequest 对象,就本示例而言,该文件与 SWF 文件位于同一个目录中。将在 try...catch 块中加载该文件,以便捕获可能发生的任何错误。(此处,我们捕获了 SecurityError 错误。) 如果发生 IO_ERROR 事件,则会调用 errorHandler() 方法,它在 xmlTextField 文本字段中写入一条错误消息。在收到 XML 文件数据并将其放在 loader URLLoader 对象的 data 属性中后,将调度 Event.COMPLETE 事件并调用 loaderCompleteHandler() 方法。
在 loaderCompleteHandler() 方法中,使用 try...catch 块来捕获将从文件中加载的数据转换为 XML 对象时可能发生的任何分析错误。readNodes() 方法随后以递归方式查看 XML 文档节点中的所有元素,并在 xmlTextField 文本字段中附加所有元素的第一个属性的列表。
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.xml.*;
import flash.events.IOErrorEvent;
public class URLLoader_loadExample extends Sprite {
private var xmlTextField:TextField = new TextField();
private var externalXML:XML;
private var loader:URLLoader;
public function URLLoader_loadExample() {
var request:URLRequest = new URLRequest("xmlFile.xml");
loader = new URLLoader();
try {
loader.load(request);
}
catch (error:SecurityError)
{
trace("A SecurityError has occurred.");
}
loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
loader.addEventListener(Event.COMPLETE, loaderCompleteHandler);
xmlTextField.x = 10;
xmlTextField.y = 10;
xmlTextField.background = true;
xmlTextField.autoSize = TextFieldAutoSize.LEFT;
addChild(xmlTextField);
}
private function loaderCompleteHandler(event:Event):void {
try {
externalXML = new XML(loader.data);
readNodes(externalXML);
} catch (e:TypeError) {
trace("Could not parse the XML file.");
}
}
private function readNodes(node:XML):void {
for each (var element:XML in node.elements()) {
xmlTextField.appendText(element.attributes()[0] + "\n");
readNodes(element);
}
}
private function errorHandler(e:IOErrorEvent):void {
xmlTextField.text = "Had problem loading the XML File.";
}
}
}
complete | 事件 |
flash.events.Event属性 Event.type =
flash.events.Event.COMPLETE| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
在对所有已接收数据进行解码并将其放在 URLLoader 对象的 data 属性中以后调度。调度该事件后,可以访问已接收的数据。
Event.COMPLETE 常量定义 complete 事件对象的 type 属性值。
此事件具有以下属性:
| 属性 | 值 |
|---|---|
bubbles | false |
cancelable | false;没有要取消的默认行为。 |
currentTarget | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | 已完成加载的网络对象。 |
相关 API 元素
httpResponseStatus | 事件 |
flash.events.HTTPStatusEvent属性 HTTPStatusEvent.type =
flash.events.HTTPStatusEvent.HTTP_RESPONSE_STATUS| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0, AIR 1.0, Flash Lite 4 |
当对 load() 方法的调用尝试通过 HTTP 访问数据,并且 Adobe AIR 可以检测并返回请求的状态代码时调度。
与httpStatus 事件不同,httpResponseStatus 事件在传送任何响应数据之前传送。此外,httpResponseStatus 事件还包括 responseHeaders 和 responseURL 属性的值(对于 httpStatus,这些属性未定义)。请注意,在发送任何 complete 或 error 事件之前还将发送 httpResponseStatus(如果有)。
HTTPStatusEvent.HTTP_RESPONSE_STATUS 常量定义 httpResponseStatus 事件对象的 type 属性值。
此事件具有以下属性:
| 属性 | 值 |
|---|---|
bubbles | false |
cancelable | false;没有要取消的默认行为。 |
currentTarget | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
responseURL | 从中返回响应的 URL。 |
responseHeaders | 响应以 URLRequestHeader 对象的数组形式返回的响应标头。 |
status | 由服务器返回的 HTTP 状态代码。 |
redirected | 响应是否为重定向结果。 |
target | 接收 HTTP 状态代码的网络对象。 |
相关 API 元素
httpStatus | 事件 |
flash.events.HTTPStatusEvent属性 HTTPStatusEvent.type =
flash.events.HTTPStatusEvent.HTTP_STATUS| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
当对 URLLoader.load() 的调用尝试通过 HTTP 访问数据时调度。对于在 Flash Player 中运行的内容,只有当前 Flash Player 环境能够检测并返回请求的状态代码时,才能调度此事件。(有些浏览器环境可能无法提供此信息。)请注意:在发送任何 complete 或 error 事件之前还将发送 httpStatus 事件(如果有)。
HTTPStatusEvent.HTTP_STATUS 常量定义 httpStatus 事件对象的 type 属性值。
此事件具有以下属性:
| 属性 | 值 |
|---|---|
bubbles | false |
cancelable | false;没有要取消的默认行为。 |
currentTarget | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
status | 由服务器返回的 HTTP 状态代码。 |
target | 接收 HTTP 状态代码的网络对象。 |
相关 API 元素
ioError | 事件 |
flash.events.IOErrorEvent属性 IOErrorEvent.type =
flash.events.IOErrorEvent.IO_ERROR| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
若对 URLLoader.load() 的调用导致致命错误并因此终止了下载,则进行调度。
定义ioError 事件对象的 type 属性值。
此事件具有以下属性:
| 属性 | 值 |
|---|---|
bubbles | false |
cancelable | false;没有要取消的默认行为。 |
currentTarget | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
errorID | 与特定错误关联的引用编号(仅限 AIR)。 |
target | 发生输入/输出错误的网络对象。 |
text | 要显示为错误消息的文本。 |
相关 API 元素
open | 事件 |
flash.events.Event属性 Event.type =
flash.events.Event.OPEN| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
在调用 URLLoader.load() 方法和开始下载操作时调度。
Event.OPEN 常量用于定义 open 事件对象的 type 属性值。
此事件具有以下属性:
| 属性 | 值 |
|---|---|
bubbles | false |
cancelable | false;没有要取消的默认行为。 |
currentTarget | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | 已打开连接的网络对象。 |
相关 API 元素
progress | 事件 |
flash.events.ProgressEvent属性 ProgressEvent.type =
flash.events.ProgressEvent.PROGRESS| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
在下载操作过程中收到数据时调度。
请注意,对于 URLLoader 对象,在完全接收数据前无法访问该数据。因此,该 progress 事件仅用作有关下载进展的通知。要在完整下载前访问该数据,请使用 URLStream 对象。
定义progress 事件对象的 type 属性值。
此事件具有以下属性:
| 属性 | 值 |
|---|---|
bubbles | false |
bytesLoaded | 在侦听器处理事件时加载的项数或字节数。 |
bytesTotal | 如果加载进程成功,最终将加载的项目或字节总数。 |
cancelable | false;没有要取消的默认行为。 |
currentTarget | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | 报告进度的对象。 |
相关 API 元素
securityError | 事件 |
flash.events.SecurityErrorEvent属性 SecurityErrorEvent.type =
flash.events.SecurityErrorEvent.SECURITY_ERROR| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
若对 URLLoader.load() 的调用尝试从安全沙箱外部的服务器加载数据,则进行调度。在对 URLLoader.load() 的调用尝试加载 SWZ 文件而证书无效或摘要字符串与组件不匹配时也会调度。
SecurityErrorEvent.SECURITY_ERROR 常量定义 securityError 事件对象的 type 属性值。
此事件具有以下属性:
| 属性 | 值 |
|---|---|
bubbles | false |
cancelable | false;没有要取消的默认行为。 |
currentTarget | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | 报告安全错误的网络对象。 |
text | 要显示为错误消息的文本。 |
相关 API 元素
注意:要运行此示例,请将名为 urlLoaderExample.txt 的文件与 SWF 文件放在同一目录下。该文件应仅包含以下文本行:answer=42&question=unknown
该示例代码执行以下操作:
- 该构造函数创建名为
loader的 URLLoader 实例和名为requestURLRequest 的实例,后者包含要加载的文件的位置和名称。 loader对象被传递给configureListeners()方法,该方法可为每个受支持的 URLLoader 事件添加侦听器。- 然后,
request对象被传递给loader.load(),该方法可加载文本文件。 - 当 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 {
private loader:URLoader;
public function URLLoaderExample() {
loader = 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);
}
}
}
Tue Jun 12 2018, 11:04 AM Z
隐藏继承的公共属性
显示继承的公共属性