The flash.utils package contains a variety of package-level functions for timing code execution, retrieving information about classes and objects, and converting escape characters.
公共方法
 函数定义方
  
取消指定的 setInterval() 调用。
flash.utils
  
取消指定的 setTimeout() 调用。
flash.utils
  
describeType(value:*):XML
生成描述 ActionScript 对象(命名为方法的参数)的 XML 对象。
flash.utils
  
escapeMultiByte(value:String):String
返回编码为 UTF-8 或系统代码页的输入字符串的转义副本,具体取决于 System.useCodePage 的值。
flash.utils
  
getDefinitionByName(name:String):Object
返回 name 参数指定的类的类对象引用。
flash.utils
  
getQualifiedClassName(value:*):String
返回对象的完全限定类名。
flash.utils
  
返回 value 参数指定的对象的基类的完全限定类名。
flash.utils
  
getTimer():int
返回初始化 Flash Player 后经过的毫秒数,并使用它来计算相对时间。
flash.utils
  
setInterval(closure:Function, delay:Number, ... arguments):uint
以指定的间隔(以毫秒为单位)运行函数。
flash.utils
  
setTimeout(closure:Function, delay:Number, ... arguments):uint
在指定的延迟(以毫秒为单位)后运行指定的函数。
flash.utils
  
unescapeMultiByte(value:String):String
返回依据系统代码页或 UTF-8 解码的输入字符串的反向转义副本,具体取决于 System.useCodePage 的值。
flash.utils
函数详细信息
clearInterval()函数
function clearInterval(id:uint):void

取消指定的 setInterval() 调用。

参数

id:uint — 设置为变量的 setInterval() 调用的 ID,如以下代码中所示:

另请参见

clearTimeout()函数 
function clearTimeout(id:uint):void

取消指定的 setTimeout() 调用。

参数

id:uint — 设置为变量的 setTimeout() 调用的 ID,如以下代码中所示:

另请参见

describeType()函数 
function describeType(value:*):XML

生成描述 ActionScript 对象(命名为方法的参数)的 XML 对象。此方法实现 ActionScript 语言的反射编程概念。

如果 value 参数是类型的实例,则返回的 XML 对象包括该类型的所有实例属性,但不包括任何静态属性。可以在解析 XML 对象时检查此条件,方法是检查 <type> 标签的 isStatic 属性的值,该值在 value 参数是类型的实例时为 false

若要获取某个类型的静态属性,请为 value 参数传递该类型本身。返回的 XML 对象不仅仅包括类型的静态属性,而且还包括它的所有实例属性。实例属性嵌套在名为 <factory> 的标签内,从而与静态属性区分开来。在这种情况下,<type> 标签的 isStatic 属性为 true

注意:如果只需要遍历某个对象的继承层次结构,而不需要 describeType() 提供的其它信息,请改用 getQualifiedClassName()getQualifiedSuperclassName() 函数。

下表描述了 describeType() 所生成的 XML 对象的一些标记和属性:

标签属性Description
<type> XML 对象的根标签。
 nameActionScript 对象的数据类型的名称。
 baseActionScript 对象的定义类的直接超类。如果 ActionScript 对象是类对象,则值为 Class
 isDynamic如果 ActionScript 对象的定义类是动态的,则为 true;否则为 false。如果 ActionScript 对象是类对象,则值为 true,因为 Class 类是动态的。
 isFinal如果 ActionScript 对象的定义类是最终类,则为 true;否则为 false
 isStatic如果 ActionScript 对象是类对象或构造函数,则为 true;否则为 false。此属性之所以名为 isStatic,原因是:如果此属性为 true,则未嵌套在 factory 标记内的任何标签都是静态的。
<extendsClass> ActionScript 对象的定义类的每个超类都有一个单独的 extendsClass 标签。
 typeActionScript 对象的定义类扩展的超类的名称。
<implementsInterface> ActionScript 对象的定义类或其任何超类实现的每个接口都有一个单独的 implementsInterface 标签。
 typeActionScript 对象的定义类实现的接口的名称。
<accessor> 存取器是 getter 和 setter 函数定义的一个属性。
 name存取器的名称。
 access属性的访问权限。可能的值包括 readonlywriteonlyreadwrite
 type属性的数据类型。
 declaredBy包含关联的 getter 或 setter 函数的类。
<constant> 常量是用 const 语句定义的一个属性。
 name常量的名称。
 type常量的数据类型。
<method> 方法是作为类定义的一部分声明的函数。
 name方法的名称。
 declaredBy包含方法定义的类。
 returnType方法的返回值的数据类型。
<parameter> 方法定义的每个参数都有一个单独的 parameter 标签。此标签始终嵌套在 <method> 标签内。
 index一个数字,对应于参数在方法的参数列表中出现的顺序。第一个参数的值为 1。
 type参数的数据类型。
 optional如果参数是可选参数,则为 true;否则为 false
<variable> 变量是用 var 语句定义的一个属性。
 name变量的名称。
 type变量的数据类型。
<factory> 如果 ActionScript 对象是类对象或构造函数,则所有实例属性和方法均嵌套在此标签内。如果 <type> 标签的 isStatic 属性为 true,则未嵌套在 <factory> 标签内的所有属性和方法都是静态的。只有在 ActionScript 对象是类对象或构造函数时,此标签才会出现。

参数

value:* — 需要类型说明的对象。可以将任何 ActionScript 值传递给此方法,包括所有可用的 ActionScript 类型、对象实例、原始类型(如 uint)和类对象。

返回
XML — 一个 XML 对象,包含有关作为参数传入的对象的详细信息。它提供有关对象的以下信息:
  • 对象的类
  • 类的属性
  • 从类到其基类的继承树
  • 类实现的接口
  • 类的已声明实例属性
  • 类的已声明静态属性
  • 类的实例方法
  • 类的静态方法
  • (对于类的每个方法)名称、参数的数量、返回类型和参数类型

注意: describeType() 只显示公共属性和方法,而不会显示私有、在包内部或在自定义命名空间中的属性和方法。

另请参见

escapeMultiByte()函数 
function escapeMultiByte(value:String):String

返回编码为 UTF-8 或系统代码页的输入字符串的转义副本,具体取决于 System.useCodePage 的值。通过使用 System.useCodePage,将使播放器能够访问用本地代码页编码的旧内容,但只能在使用旧代码页的系统上访问。例如,在使用日语默认代码页的操作系统中,只能正确转义和反向转义以 Shift-JIS 编码的日语数据。

参数

value:String — 要转义的字符串。

返回
String — 输入字符串的转义副本。如果 System.useCodePage 为 true,则转义字符串采用系统代码页编码。如果 System.useCodePage 为 false,则转义字符串采用 UTF-8 编码。例如,如果 System.useCodePage 为 false,输入字符串“Crüe”在所有系统上都将被转义为“Cr%C3%BCe”。如果 system.useCodePage 为 true,并且系统使用拉丁语代码页,则“Crüe”将被转义为“Cr%FCe”。如果系统使用不包含字母“ü”的非拉丁语代码页,结果将可能为“Cr?e”。
getDefinitionByName()函数 
function getDefinitionByName(name:String):Object

返回 name 参数指定的类的类对象引用。

参数

name:String — 类的名称。

返回
Object — 返回 name 参数指定的类的类对象引用。

引发
ReferenceError — 不存在具有指定名称的公共定义。
getQualifiedClassName()函数 
function getQualifiedClassName(value:*):String

返回对象的完全限定类名。

参数

value:* — 需要完全限定类名称的对象。可以将任何 ActionScript 值传递给此方法,包括所有可用的 ActionScript 类型、对象实例、原始类型(如 uint)和类对象。

返回
String — 包含完全限定类名称的字符串。

另请参见

getQualifiedSuperclassName()函数 
function getQualifiedSuperclassName(value:*):String

返回 value 参数指定的对象的基类的完全限定类名。此函数检索基类名称的速度比 describeType() 快,但提供的信息不如 describeType() 全面。

使用此函数检索了类的名称后,可以用 getDefinitionByName() 函数将类名称转换为类引用。

注意:此函数将本身局限于实例层次结构,而 describeType() 函数则使用类对象层次结构(如果 value 参数是数据类型)。如果在数据类型上调用 describeType(),将会基于类对象层次结构(其中所有类对象均继承自 Class)返回超类。但是,getQualifiedSuperclassName() 函数会忽略类对象层次结构,并基于较普通的实例层次结构返回超类。例如,调用 getQualifiedSuperclassName(String) 将会返回 Object,尽管从技术角度来说 String 类对象继承自 Class。换言之,不管使用的是类型的实例还是类型本身,结果都是相同的。

参数

value:* — 任何值。

返回
String — 完全限定的基类名称,或 null(如果不存在基类名称)。

另请参见

getTimer()函数 
function getTimer():int

返回初始化 Flash Player 后经过的毫秒数,并使用它来计算相对时间。关于日历日期(时间戳),请参阅 Date 对象。

返回
int — 初始化 Flash Player 后经过的毫秒数。如果播放器开始播放一个 SWF 文件,并稍后加载另一个 SWF 文件,则返回值相对于加载第一个 SWF 文件时的时间。

另请参见

setInterval()函数 
function setInterval(closure:Function, delay:Number, ... arguments):uint

以指定的间隔(以毫秒为单位)运行函数。

作为使用 setInterval() 方法的替代方法,请考虑创建一个 Timer 对象,带有指定的间隔,并使用 0 作为 repeatCount 参数(这样可将计时器设置为无限制重复)。

如果打算使用 clearInterval() 方法取消 setInterval() 调用,请确保将 setInterval() 调用分配给一个变量(clearInterval() 函数稍后将引用该变量)。如果不通过调用 clearInterval() 函数取消 setInterval() 调用,则不会将包含 setTimeout 闭包函数的对象作为垃圾回收。

参数

closure:Function — 要执行的函数的名称。 不要包括引号或圆括号,并且不要指定要调用的函数的参数。例如,使用 functionName,而不要使用 functionName()functionName(param)
 
delay:Number — 间隔(以毫秒为单位)。
 
... arguments — 传递给 closure 函数的可选参数列表。

返回
uint — 超时进程的唯一数字标识符。使用此标识符可通过调用 clearInterval() 方法取消进程。

另请参见

setTimeout()函数 
function setTimeout(closure:Function, delay:Number, ... arguments):uint

在指定的延迟(以毫秒为单位)后运行指定的函数。

作为使用此方法的替代方法,请考虑创建一个 Timer 对象,带有指定的间隔,并使用 1 作为 repeatCount 参数(这样可将计时器设置为只运行一次)。

如果打算使用 clearTimeout() 方法取消 setTimeout() 调用,请确保将 setTimeout() 调用分配给一个变量(clearTimeout() 函数稍后将引用该变量)。如果不通过调用 clearTimeout() 函数取消 setTimeout() 调用,则不会将包含设置的超时 closure 函数的对象作为垃圾回收。

参数

closure:Function — 要执行的函数的名称。 不要包括引号或圆括号,并且不要指定要调用的函数的参数。例如,使用 functionName,而不要使用 functionName()functionName(param)
 
delay:Number — 执行函数之前的延迟时间(以毫秒为单位)。
 
... arguments — 传递给 closure 函数的可选参数列表。

返回
uint — 超时进程的唯一数字标识符。使用此标识符可通过调用 clearTimeout() 方法取消进程。

另请参见

unescapeMultiByte()函数 
function unescapeMultiByte(value:String):String

返回依据系统代码页或 UTF-8 解码的输入字符串的反向转义副本,具体取决于 System.useCodePage 的值。通过使用 System.useCodePage,将使播放器能够访问用本地代码页编码的旧内容,但只能在使用旧代码页的系统上访问。例如,在使用日语默认代码页的操作系统中,只能正确转义和反向转义以 Shift-JIS 编码的日语数据。

参数

value:String — 要反向转义的转义字符串。

返回
String — 输入字符串的反向转义副本。如果 System.useCodePage 为 true,则依据系统代码页对转义字符串进行解码。如果 System.useCodePage 为 false,则依据 UTF-8 对转义字符串进行解码。例如,如果输入字符串为“Cr%C3%BCe”并且 System.useCodePage 为 false,则在所有系统上的结果都是“Crüe”。如果 System.useCodePage 为 true 且输入字符串为“Cr%FCe”,并且系统使用拉丁语代码页,则结果将也是“Crüe”。如果在 System.useCodePage 设置为 true 的情况下对“Cr%C3%BCe”进行反向转义,则在不同的系统上会生成不同的错误结果,比如在拉丁语系统上会生成“Crüe”。同样,在 System.useCodePage 设置为 false 的情况下对“Cr%FCe”进行反向转义可能会生成“Cre”、“Cr?e”或其它变体,具体取决于系统的代码页。