flash.net
public class URLStream
继承URLStream Inheritance EventDispatcher Inheritance Object
实现 IDataInput

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

URLStream 类提供对下载 URL 的低级访问。 数据一下载,便可随即为 ActionScript 使用,这和使用 URLLoader 时需要等到整个文件下载完不同。 并且 URLStream 类还允许在完成下载前关闭流。 已下载文件的内容将作为原始二进制数据提供。

在 URLStream 中的读取操作是非阻塞模式的。 这意味着您在读取数据之前必须使用 bytesAvailable 属性来确定是否能够获得足够的数据。 如果不能获得足够的数据,将引发 EOFError 异常。

在默认情况下,所有二进制数据都是以 Big-endian 格式编码的,并且最高位字节于第一位。

适用于通过 URLStream 类进行 URL 下载的安全规则与适用于 URLLoader 对象的规则相同。 如有需要也可以下载策略文件。 将强制执行本地文件安全规则,并根据需要发出安全警告。

查看示例

另请参见

URLLoader
URLRequest



公共 属性
 属性定义方
  bytesAvailable : uint
[read-only] 返回可在输入缓冲区中读取的数据的字节数。
URLStream
  connected : Boolean
[read-only] 指示此 URLStream 对象目前是否已连接。
URLStream
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
  endian : String
指示数据的字节顺序;可能的值为 BIG_ENDIAN 或 LITTLE_ENDIAN。
URLStream
  objectEncoding : uint
在写入或读取对象时,控制所使用的 Action Message Format (AMF) 的版本。
URLStream
 Inheritedprototype : Object
[static] 对类或函数对象的原型对象的引用。
Object
公共 方法
 方法定义方
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。
EventDispatcher
  
立即关闭该流并取消下载操作。
URLStream
 Inherited
将事件调度到事件流中。
EventDispatcher
 Inherited
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。
EventDispatcher
 Inherited
指示对象是否已经定义了指定的属性。
Object
 Inherited
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
  
load(request:URLRequest):void
开始下载 request 参数中指定的 URL。
URLStream
 Inherited
指示指定的属性是否存在、是否可枚举。
Object
  
从该流读取一个布尔值。
URLStream
  
从该流读取一个带符号字节。
URLStream
  
readBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void
从该流读取 length 字节的数据。
URLStream
  
从该流读取一个 IEEE 754 双精度浮点数。
URLStream
  
从该流读取一个 IEEE 754 单精度浮点数。
URLStream
  
从该流读取一个带符号的 32 位整数。
URLStream
  
readMultiByte(length:uint, charSet:String):String
使用指定的字符集从字节流中读取指定长度的多字节字符串。
URLStream
  
从以 Action Message Format (AMF) 编码的套接字读取一个对象。
URLStream
  
从该流读取一个带符号的 16 位整数。
URLStream
  
从该流读取一个无符号字节。
URLStream
  
从该流读取一个无符号的 32 位整数。
URLStream
  
从该流读取一个无符号的 16 位整数。
URLStream
  
从该流读取一个 UTF-8 字符串。
URLStream
  
从该流读取长度为 length 的 UTF-8 字节序列,并返回一个字符串。
URLStream
 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
   成功加载数据后调度。URLStream
 Inherited Flash Player 失去操作系统焦点并变为非活动状态时调度。EventDispatcher
   若对 URLStream.load() 的调用尝试通过 HTTP 访问数据并且当前的 Flash Player 能够检测并返回该请求的状态代码,则进行调度。URLStream
   在出现输入/输出错误并由此导致加载操作失败时调度。URLStream
   在加载操作开始时调度。URLStream
   在下载操作过程中收到数据时调度。URLStream
   若对 URLStream.load() 的调用尝试从安全沙箱外部的服务器加载数据,则进行调度。URLStream
属性详细信息
bytesAvailable属性
bytesAvailable:uint  [read-only]

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

返回可在输入缓冲区中读取的数据的字节数。 您的代码必须调用 bytesAvailable 属性,以确保尝试使用其中一种 read 方法读取前有足够可用的数据。


实现
    public function get bytesAvailable():uint
connected属性 
connected:Boolean  [read-only]

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

指示此 URLStream 对象目前是否已连接。 如果已连接 URLStream 对象,则调用该属性会返回值 true,否则会返回值 false


实现
    public function get connected():Boolean
endian属性 
endian:String  [read-write]

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

指示数据的字节顺序;可能的值为 BIG_ENDIANLITTLE_ENDIAN

默认值为 Endian.BIG_ENDIAN.


实现
    public function get endian():String
    public function set endian(value:String):void

另请参见

objectEncoding属性 
objectEncoding:uint  [read-write]

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

在写入或读取对象时,控制所使用的 Action Message Format (AMF) 的版本。


实现
    public function get objectEncoding():uint
    public function set objectEncoding(value:uint):void

另请参见

方法详细信息
close()方法
public function close():void

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

立即关闭该流并取消下载操作。 无法在调用 close() 方法后从该流中读取数据。


引发
IOError — 无法关闭该流,或者该流未打开。
load()方法 
public function load(request:URLRequest):void

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

开始下载 request 参数中指定的 URL。

注意:如果要加载的文件包含非 ASCII 字符(在许多非英语的语言中出现),则建议使用 UTF-8 或 UTF-16 编码(而不是 ASCII 等非 Unicode 格式)来保存文件。

如果加载操作很快失败,将引发描述失败情况的 IOError 或 SecurityError(包括本地文件安全错误)异常。 否则,如果 URL 下载开始成功下载,将调度 open 事件;如果发生错误,将调度错误事件。

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

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

参数

request:URLRequest — 一个 URLRequest 对象,指定要下载的 URL。 如果所传递的参数值或 URLRequest 对象的 URLRequest.url 属性为 null,则 Flash Player 会引发空指针错误。


事件
complete:Event — 在成功加载数据后调度。
 
httpStatus:HTTPStatusEvent — 如果通过 HTTP 进行访问,并且当前 Flash Player 环境支持获得状态代码,则除了 completeerror 事件,还可以接收到 HTTPStatusEvent 事件。
 
ioError:IOErrorEvent — 无法完成加载操作。
 
open:Event — 在加载操作开始时调度。
 
securityError:SecurityErrorEvent — 加载操作尝试从调用方安全沙箱外部的服务器检索数据。 可以通过在服务器上使用策略文件来解决此问题。

引发
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 文件重新分类为只能与远程内容交互或受信任来解决此问题。

另请参见

readBoolean()方法 
public function readBoolean():Boolean

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

从该流读取一个布尔值。 读取单个字节,如果字节非零,则返回 true,否则返回 false

返回
Boolean

引发
EOFError — 可读取的数据不足。 若本地 SWF 文件触发了安全警告,则 Flash Player 会阻止将 URLStream 数据用于 ActionScript。 当发生这种情况时,即使收到了数据,bytesAvailable 属性也将返回 0,而且任何读方法都将引发 EOFError 异常。
 
IOError — 该流发生了 I/O 错误,或者该流未打开。
readByte()方法 
public function readByte():int

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

从该流读取一个带符号字节。

返回值在 -128...127 之间。

返回
int

引发
EOFError — 可读取的数据不足。 若本地 SWF 文件触发了安全警告,则 Flash Player 会阻止将 URLStream 数据用于 ActionScript。 当发生这种情况时,即使收到了数据,bytesAvailable 属性也将返回 0,而且任何读方法都将引发 EOFError 异常。
 
IOError — 该流发生了 I/O 错误,或者该流未打开。
readBytes()方法 
public function readBytes(bytes:ByteArray, offset:uint = 0, length:uint = 0):void

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

从该流读取 length 字节的数据。 这些字节会被读取到由 bytes 指定的 ByteArray 对象中,其起始位置是在 ByteArray 对象中偏移 offset 字节处。

参数

bytes:ByteArray — 要将数据读入的 ByteArray 对象。
 
offset:uint (default = 0) — 在 bytes 中的偏移量,即数据读取的起始位置。 默认值为 0。
 
length:uint (default = 0) — 要读取的字节数。 默认值 0 将导致读取所有可用的数据。


引发
EOFError — 可读取的数据不足。 若本地 SWF 文件触发了安全警告,则 Flash Player 会阻止将 URLStream 数据用于 ActionScript。 当发生这种情况时,即使收到了数据,bytesAvailable 属性也将返回 0,而且任何读方法都将引发 EOFError 异常。
 
IOError — 该流发生了 I/O 错误,或者该流未打开。
readDouble()方法 
public function readDouble():Number

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

从该流读取一个 IEEE 754 双精度浮点数。

返回
Number

引发
EOFError — 可读取的数据不足。 若本地 SWF 文件触发了安全警告,则 Flash Player 会阻止将 URLStream 数据用于 ActionScript。 当发生这种情况时,即使收到了数据,bytesAvailable 属性也将返回 0,而且任何读方法都将引发 EOFError 异常。
 
IOError — 该流发生了 I/O 错误,或者该流未打开。
readFloat()方法 
public function readFloat():Number

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

从该流读取一个 IEEE 754 单精度浮点数。

返回
Number

引发
EOFError — 可读取的数据不足。 若本地 SWF 文件触发了安全警告,则 Flash Player 会阻止将 URLStream 数据用于 ActionScript。 当发生这种情况时,即使收到了数据,bytesAvailable 属性也将返回 0,而且任何读方法都将引发 EOFError 异常。
 
IOError — 该流发生了 I/O 错误,或者该流未打开。
readInt()方法 
public function readInt():int

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

从该流读取一个带符号的 32 位整数。

返回值在 -2147483648...2147483647 之间。

返回
int

引发
EOFError — 可读取的数据不足。 若本地 SWF 文件触发了安全警告,则 Flash Player 会阻止将 URLStream 数据用于 ActionScript。 当发生这种情况时,即使收到了数据,bytesAvailable 属性也将返回 0,而且任何读方法都将引发 EOFError 异常。
 
IOError — 该流发生了 I/O 错误,或者该流未打开。
readMultiByte()方法 
public function readMultiByte(length:uint, charSet:String):String

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

使用指定的字符集从字节流中读取指定长度的多字节字符串。

参数

length:uint — 要从字节流中读取的字节数。
 
charSet:String — 表示用于解释字节的字符集的字符串。 可能的字符集字符串包括 "shift_jis""CN-GB""iso-8859-1"”等。 有关完整列表,请参阅Supported Character

注意:如果当前系统无法识别 charSet 参数的值,则 Flash Player 将采用系统的默认代码页作为字符集。 例如,charSet 参数的值(如在使用 01 而不是 1myTest.readMultiByte(22, "iso-8859-01") 中)可能在您的开发计算机上起作用,但在其它计算机上可能不起作用。 在另一台计算机上,Flash Player 将使用系统的默认代码页。

返回
String — UTF-8 编码的字符串。

引发
EOFError — 可读取的数据不足。
readObject()方法 
public function readObject():*

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

从以 Action Message Format (AMF) 编码的套接字读取一个对象。

返回
* — 反序列化的对象。

引发
EOFError — 可读取的数据不足。 若本地 SWF 文件触发了安全警告,则 Flash Player 会阻止将 URLStream 数据用于 ActionScript。 当发生这种情况时,即使收到了数据,bytesAvailable 属性也将返回 0,而且任何读方法都将引发 EOFError 异常。
 
IOError — 该流发生了 I/O 错误,或者该流未打开。

另请参见

readShort()方法 
public function readShort():int

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

从该流读取一个带符号的 16 位整数。

返回值在 -32768...32767 之间。

返回
int

引发
EOFError — 可读取的数据不足。 若本地 SWF 文件触发了安全警告,则 Flash Player 会阻止将 URLStream 数据用于 ActionScript。 当发生这种情况时,即使收到了数据,bytesAvailable 属性也将返回 0,而且任何读方法都将引发 EOFError 异常。
 
IOError — 该流发生了 I/O 错误,或者该流未打开。
readUnsignedByte()方法 
public function readUnsignedByte():uint

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

从该流读取一个无符号字节。

返回值在 0...255 之间。

返回
uint

引发
EOFError — 可读取的数据不足。 若本地 SWF 文件触发了安全警告,则 Flash Player 会阻止将 URLStream 数据用于 ActionScript。 当发生这种情况时,即使收到了数据,bytesAvailable 属性也将返回 0,而且任何读方法都将引发 EOFError 异常。
 
IOError — 该流发生了 I/O 错误,或者该流未打开。
readUnsignedInt()方法 
public function readUnsignedInt():uint

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

从该流读取一个无符号的 32 位整数。

返回值在 0...4294967295 之间。

返回
uint

引发
EOFError — 可读取的数据不足。 若本地 SWF 文件触发了安全警告,则 Flash Player 会阻止将 URLStream 数据用于 ActionScript。 当发生这种情况时,即使收到了数据,bytesAvailable 属性也将返回 0,而且任何读方法都将引发 EOFError 异常。
 
IOError — 该流发生了 I/O 错误,或者该流未打开。
readUnsignedShort()方法 
public function readUnsignedShort():uint

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

从该流读取一个无符号的 16 位整数。

返回值在 0...65535 之间。

返回
uint

引发
EOFError — 可读取的数据不足。 若本地 SWF 文件触发了安全警告,则 Flash Player 会阻止将 URLStream 数据用于 ActionScript。 当发生这种情况时,即使收到了数据,bytesAvailable 属性也将返回 0,而且任何读方法都将引发 EOFError 异常。
 
IOError — 该流发生了 I/O 错误,或者该流未打开。
readUTF()方法 
public function readUTF():String

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

从该流读取一个 UTF-8 字符串。 假定字符串的前缀是无符号的短整型(以字节表示长度)。

返回
String

引发
EOFError — 可读取的数据不足。 若本地 SWF 文件触发了安全警告,则 Flash Player 会阻止将 URLStream 数据用于 ActionScript。 当发生这种情况时,即使收到了数据,bytesAvailable 属性也将返回 0,而且任何读方法都将引发 EOFError 异常。
 
IOError — 该流发生了 I/O 错误,或者该流未打开。
readUTFBytes()方法 
public function readUTFBytes(length:uint):String

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

从该流读取长度为 length 的 UTF-8 字节序列,并返回一个字符串。

参数

length:uint — 一个 UTF-8 字节序列。

返回
String

引发
EOFError — 可读取的数据不足。 若本地 SWF 文件触发了安全警告,则 Flash Player 会阻止将 URLStream 数据用于 ActionScript。 当发生这种情况时,即使收到了数据,bytesAvailable 属性也将返回 0,而且任何读方法都将引发 EOFError 异常。
 
IOError — 该流发生了 I/O 错误,或者该流未打开。
事件详细信息
complete 事件
事件对象类型: flash.events.Event
Event.type property = flash.events.Event.COMPLETE

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

成功加载数据后调度。

定义 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

若对 URLStream.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

在出现输入/输出错误并由此导致加载操作失败时调度。

定义 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

在加载操作开始时调度。

定义 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

在下载操作过程中收到数据时调度。 可以使用 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

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

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

此事件具有以下属性:

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

另请参见

示例 如何使用示例

下例加载一个 SWF 文件,并解析其标头的开始部分以指明压缩和版本号信息。

若要运行该示例,则在与 SWF 文件相同的目录中放置一个名为 URLStreamExample.swf 的文件。


package {
    import flash.display.Sprite;
    import flash.errors.*;
    import flash.events.*;
    import flash.net.URLRequest;
    import flash.net.URLStream;

    public class URLStreamExample extends Sprite {
        private static const ZLIB_CODE:String = "CWS";
        private var stream:URLStream;

        public function URLStreamExample() {
            stream = new URLStream();
            var request:URLRequest = new URLRequest("URLStreamExample.swf");
            configureListeners(stream);
            try {
                stream.load(request);
            } catch (error:Error) {
                trace("Unable to load requested URL.");
            }
        }

        private function configureListeners(dispatcher:EventDispatcher):void {
            dispatcher.addEventListener(Event.COMPLETE, completeHandler);
            dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
            dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
            dispatcher.addEventListener(Event.OPEN, openHandler);
            dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
            dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
        }

        private function parseHeader():void {
            trace("parseHeader");
            trace("isCompressed: " + isCompressed());
            trace("version: " + stream.readByte());
        }

        private function isCompressed():Boolean {
            return (stream.readUTFBytes(3) == ZLIB_CODE);
        }

        private function completeHandler(event:Event):void {
            trace("completeHandler: " + event);
            parseHeader();
        }

        private function openHandler(event:Event):void {
            trace("openHandler: " + event);
        }

        private function progressHandler(event:Event):void {
            trace("progressHandler: " + event);
        }

        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/URLStream.html