函数 | 定义方 | ||
---|---|---|---|
取消指定的 setInterval() 调用。
| flash.utils | ||
取消指定的 setTimeout() 调用。
| flash.utils | ||
生成描述 ActionScript 对象(命名为方法的参数)的 XML 对象。
| flash.utils | ||
返回编码为 UTF-8 或系统代码页的输入字符串的转义副本,具体取决于 System.useCodePage 的值。
| flash.utils | ||
返回 name 参数指定的类的类对象引用。
| flash.utils | ||
返回对象的完全限定类名。
| flash.utils | ||
返回 value 参数指定的对象的基类的完全限定类名。
| flash.utils | ||
返回初始化 Flash Player 后经过的毫秒数,并使用它来计算相对时间。
| flash.utils | ||
以指定的间隔(以毫秒为单位)运行函数。
| flash.utils | ||
在指定的延迟(以毫秒为单位)后运行指定的函数。
| flash.utils | ||
返回依据系统代码页或 UTF-8 解码的输入字符串的反向转义副本,具体取决于 System.useCodePage 的值。
| flash.utils |
clearInterval | () | 函数 |
public function clearInterval(id:uint):void
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
取消指定的 setInterval()
调用。
参数
id:uint — 设置为变量的 setInterval() 调用的 ID,如以下代码中所示:
|
另请参见
setInterval()
方法创建一个计时间隔,以 1 秒的固定间隔调用 myRepeatingFunction()
方法。
每次调用 myRepeatingFunction
方法都会递增 counter
属性,当该属性等于 stopCount
属性时,调用 clearInterval()
方法(使用属性 intervalId
进行调用,该属性是对前面创建的间隔的引用 ID)。
package { import flash.display.Sprite; import flash.utils.*; public class ClearIntervalExample extends Sprite { private var intervalDuration:Number = 1000; // duration between intervals, in milliseconds private var intervalId:uint; private var counter:uint = 0; private var stopCount:uint = 3; public function ClearIntervalExample() { intervalId = setInterval(myRepeatingFunction, intervalDuration, "Hello", "World"); } public function myRepeatingFunction():void { trace(arguments[0] + " " + arguments[1]); counter++; if(counter == stopCount) { trace("Clearing Interval"); clearInterval(intervalId); } } } }
clearTimeout | () | 函数 |
public function clearTimeout(id:uint):void
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
取消指定的 setTimeout()
调用。
参数
id:uint — 设置为变量的 setTimeout() 调用的 ID,如以下代码中所示:
|
另请参见
setTimeout()
方法在指定的延迟期之后调用另一个方法。
创建一个计数到一百万的循环。 如果计算机处理此请求的速度比第二个请求到期的速度更快,clearTimeout()
将删除 setTimeout()
请求,将不调用 myDelayedFunction()
。
package { import flash.display.Sprite; import flash.utils.*; public class ClearTimeoutExample extends Sprite { private var delay:Number = 1000; // delay before calling myDelayedFunction private var intervalId:uint; private var count:uint = 1000000; public function ClearTimeoutExample() { intervalId = setTimeout(myDelayedFunction, delay); startCounting(); } public function startCounting():void { var i:uint = 0; do { if(i == count-1) { clearTimeout(intervalId); trace("Your computer can count to " + count + " in less than " + delay/1000 + " seconds."); } i++; } while(i < count) } public function myDelayedFunction():void { trace("Time expired."); } } }
describeType | () | 函数 |
public function describeType(value:*):XML
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
生成描述 ActionScript 对象(命名为方法的参数)的 XML 对象。 此方法实现 ActionScript 语言的反射编程概念。
如果 value
参数是类型的实例,则返回的 XML 对象包括该类型的所有实例属性,但不包括任何静态属性。 可以在解析 XML 对象时检查此条件,方法是检查 <type>
标签的 isStatic
属性的值,该值在 value
参数是类型的实例时为 false
。
若要获取某个类型的静态属性,请为 value
参数传递该类型本身。 返回的 XML 对象不仅仅包括类型的静态属性,而且还包括它的所有实例属性。 实例属性嵌套在名为 <factory>
的标签内,从而与静态属性区分开来。 在这种情况下,<type>
标签的 isStatic
属性为 true
。
注意:如果只需要遍历某个对象的继承层次结构,而不需要 describeType()
提供的其它信息,请改用 getQualifiedClassName()
和 getQualifiedSuperclassName()
函数。
下表描述了 describeType()
所生成的 XML 对象的一些标记和属性:
标签 | 属性 | Description |
---|---|---|
<type> | XML 对象的根标签。 | |
name | ActionScript 对象的数据类型的名称。 | |
base | ActionScript 对象的定义类的直接超类。 如果 ActionScript 对象是类对象,则值为 Class 。 |
|
isDynamic | 如果 ActionScript 对象的定义类是动态的,则为 true ;否则为 false 。 如果 ActionScript 对象是类对象,则值为 true ,因为 Class 类是动态的。 |
|
isFinal | 如果 ActionScript 对象的定义类是最终类,则为 true ;否则为 false 。 |
|
isStatic | 如果 ActionScript 对象是类对象或构造函数,则为 true ;否则为 false 。 此属性之所以名为 isStatic ,原因是:如果此属性为 true ,则未嵌套在 factory 标记内的任何标签都是静态的。 |
|
<extendsClass> | ActionScript 对象的定义类的每个超类都有一个单独的 extendsClass 标签。 |
|
type | ActionScript 对象的定义类扩展的超类的名称。 | |
<implementsInterface> | ActionScript 对象的定义类或其任何超类实现的每个接口都有一个单独的 implementsInterface 标签。 |
|
type | ActionScript 对象的定义类实现的接口的名称。 | |
<accessor> | 存取器是 getter 和 setter 函数定义的一个属性。 | |
name | 存取器的名称。 | |
access | 属性的访问权限。 可能的值包括 readonly 、writeonly 和 readwrite 。 |
|
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 对象,包含有关作为参数传入的对象的详细信息。 它提供有关对象的以下信息:
注意: |
另请参见
package { import flash.display.Sprite; import flash.utils.describeType; public class DescribeTypeExample extends Sprite { public function DescribeTypeExample() { var child:Sprite = new Sprite(); var description:XML = describeType(child); trace(description..accessor.@name.toXMLString()); } } }
escapeMultiByte | () | 函数 |
public function escapeMultiByte(value:String):String
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
返回编码为 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 | () | 函数 |
public function getDefinitionByName(name:String):Object
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
返回 name
参数指定的类的类对象引用。
参数
name:String — 类的名称。
|
Object — 返回 name 参数指定的类的类对象引用。
|
ReferenceError — 不存在具有指定名称的公共定义。
|
GetDefinitionByNameExample
类在舞台上创建一个橙色的正方形。 这是使用以下步骤完成的:
ClassReference
赋予 Sprite。instance
的 ClassReference 的实例进行实例化。instance
按引用是 Sprite 对象,因此可以使用可用于 Sprite 的方法绘制正方形并将其添加到显示列表。package { import flash.display.DisplayObject; import flash.display.Sprite; import flash.utils.getDefinitionByName; public class GetDefinitionByNameExample extends Sprite { private var bgColor:uint = 0xFFCC00; private var size:uint = 80; public function GetDefinitionByNameExample() { var ClassReference:Class = getDefinitionByName("flash.display.Sprite") as Class; var instance:Object = new ClassReference(); instance.graphics.beginFill(bgColor); instance.graphics.drawRect(0, 0, size, size); instance.graphics.endFill(); addChild(DisplayObject(instance)); } } }
getQualifiedClassName | () | 函数 |
public function getQualifiedClassName(value:*):String
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
返回对象的完全限定类名。
参数
value:* — 需要完全限定类名称的对象。 可以将任何 ActionScript 值传递给此方法,包括所有可用的 ActionScript 类型、对象实例、原始类型(如 uint)和类对象。
|
String — 包含完全限定类名称的字符串。
|
另请参见
getQualifiedSuperclassName | () | 函数 |
public function getQualifiedSuperclassName(value:*):String
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
返回 value
参数指定的对象的基类的完全限定类名。 此函数检索基类名称的速度比 describeType()
快,但提供的信息不如 describeType()
全面。
使用此函数检索了类的名称后,可以用 getDefinitionByName()
函数将类名称转换为类引用。
注意:此函数将本身局限于实例层次结构,而 describeType()
函数则使用类对象层次结构(如果 value
参数是数据类型)。 如果在数据类型上调用 describeType()
,将会基于类对象层次结构(其中所有类对象均继承自 Class)返回超类。 但是,getQualifiedSuperclassName()
函数会忽略类对象层次结构,并基于较普通的实例层次结构返回超类。 例如,调用 getQualifiedSuperclassName(String)
将会返回 Object
,尽管从技术角度来说 String 类对象继承自 Class。 换言之,不管使用的是类型的实例还是类型本身,结果都是相同的。
参数
value:* — 任何值。
|
String — 完全限定的基类名称,或 null (如果不存在基类名称)。
|
另请参见
getTimer | () | 函数 |
public function getTimer():int
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
返回初始化 Flash Player 后经过的毫秒数,并使用它来计算相对时间。 关于日历日期(时间戳),请参阅 Date 对象。
返回int — 初始化 Flash Player 后经过的毫秒数。 如果播放器开始播放一个 SWF 文件,并稍后加载另一个 SWF 文件,则返回值相对于加载第一个 SWF 文件时的时间。
|
另请参见
GetTimerExample
类获取并输出自 Flash Player 开始播放后经过的毫秒数。
package { import flash.utils.getTimer; import flash.display.Sprite; public class GetTimerExample extends Sprite { public function GetTimerExample() { var duration:uint = getTimer(); trace("duration: " + duration); } } }
setInterval | () | 函数 |
public function setInterval(closure:Function, delay:Number, ... arguments):uint
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
以指定的间隔(以毫秒为单位)运行函数。
尽管能够使用此方法,但它会产生编译器警告。 作为使用 setInterval()
方法的替代方法,请考虑创建一个 Timer 对象,带有指定的间隔,并使用 0 作为 repeatCount
参数(这样可将计时器设置为无限制重复)。
如果打算使用 clearInterval()
方法取消 setInterval()
调用,请确保将 setInterval()
调用赋给一个变量(setInterval()
方法稍后将引用该变量),如以下代码中所示:
参数
closure:Function — 要执行的函数的名称。 不要包括引号或圆括号,并且不要指定要调用的函数的参数。 例如,使用 functionName ,而不要使用 functionName() 或 functionName(param) 。
|
|
delay:Number — 间隔(以毫秒为单位)。
|
|
... arguments — 传递给 closure 函数的可选参数列表。
|
uint — 超时进程的唯一数字标识符。
|
另请参见
setInterval()
方法创建一个计时间隔,以 1 秒的固定间隔调用 myRepeatingFunction()
方法。package { import flash.display.Sprite; import flash.utils.*; public class SetIntervalExample extends Sprite { private var intervalDuration:Number = 1000; // duration between intervals, in milliseconds public function SetIntervalExample() { var intervalId:uint = setInterval(myRepeatingFunction, intervalDuration, "Hello", "World"); } public function myRepeatingFunction():void { trace(arguments[0] + " " + arguments[1]); } } }
setTimeout | () | 函数 |
public function setTimeout(closure:Function, delay:Number, ... arguments):uint
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
在指定的延迟(以毫秒为单位)后运行指定的函数。
作为使用此方法的替代方法,请考虑创建一个 Timer 对象,带有指定的间隔,并使用 1 作为 repeatCount
参数(这样可将计时器设置为只运行一次)。
如果打算使用 clearTimeout()
方法取消 setTimeout()
调用,请确保将 setTimeout()
调用赋给一个变量(clearTimeout()
方法稍后将引用该变量)
参数
closure:Function — 要执行的函数的名称。 不要包括引号或圆括号,并且不要指定要调用的函数的参数。 例如,使用 functionName ,而不要使用 functionName() 或 functionName(param) 。
|
|
delay:Number — 执行函数之前的延迟时间(以毫秒为单位)。
|
|
... arguments — 传递给 closure 函数的可选参数列表。
|
uint — 超时进程的唯一数字标识符。
|
另请参见
setTimeout()
方法在指定的延迟期之后调用另一个方法。package { import flash.display.Sprite; import flash.utils.*; public class SetTimeoutExample extends Sprite { private var delay:Number = 1000; // delay before calling myDelayedFunction public function SetTimeoutExample() { var intervalId:uint = setTimeout(myDelayedFunction, delay, "Hello", "World"); } public function myDelayedFunction():void { trace(arguments[0] + " " + arguments[1]); } } }
unescapeMultiByte | () | 函数 |
public function unescapeMultiByte(value:String):String
语言版本 : | ActionScript 3.0 |
Player 版本 : | Flash Player 9 |
返回依据系统代码页或 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”或其它变体,具体取决于系统的代码页。
|
当前页: http://livedocs.adobe.com/flash/9.0_cn/ActionScriptLangRefV3/flash/utils/package.html