`
zhanshenlvbu
  • 浏览: 110346 次
社区版块
存档分类
最新评论

ActionScript中的is类型和as类型

    博客分类:
  • Flex
阅读更多

is 运算符
        is 运算符是 ActionScript 3.0 中的新增运算符,它可用来测试变量或表达式是否为给定数据类型的成员。在早期的 ActionScript 版本中,此功能由 instanceof 运算符提供。但在ActionScript 3.0 中,不应使用 instanceof 运算符来测试变量或表达式是否为数据类型的成员。对于手动类型检查,应用 is 运算符来代替 instanceof 运算符,因为表达式 x
instanceof y 只是在 x 的原型链中检查 y 是否存在(在 ActionScript 3.0 中,原型链不能全面地描述继承层次结构)。


      is 运算符检查正确的继承层次结构,不但可以用来检查对象是否为特定类的实例,而且还可以检查对象是否是用来实现特定接口的类的实例。下面的示例创建 Sprite 类的一个名为mySprite 的实例,并使用 is 运算符来测试 mySprite 是否为 Sprite 和 DisplayObject 类的实例,以及它是否实现 IEventDispatcher 接口:

var mySprite:Sprite = new Sprite();
trace(mySprite is Sprite); // true
trace(mySprite is DisplayObject); // true
trace(mySprite is IEventDispatcher); // true

 

 

 

        is 运算符检查继承层次结构,并正确地报告 mySprite 与 Sprite 和 DisplayObject 类兼容(Sprite 类是 DisplayObject 类的子类) 。is 运算符还检查 mySprite 是否是从实现IEventDispatcher 接口的任意类继承的。由于 Sprite 类是从实现 IEventDispatcher 接口的 EventDispatcher 类继承的,因此 is 运算符会正确地报告 mySprite 也实现该接口。
        下面的示例说明与上一个示例相同的测试,但使用的是 instanceof 运算符,而不是 is 运算符。instanceof 运算符正确地识别出 mySprite 是 Sprite 或 DisplayObject 的实例,但是,当它用来测试 mySprite 是否实现 IEventDispatcher 接口时,返回的却是 false。

trace(mySprite instanceof Sprite); // true
trace(mySprite instanceof DisplayObject); // true
trace(mySprite instanceof IEventDispatcher); // false

  


as 运算符
     as 运算符是 ActionScript 3.0 中的新增运算符,也可用来检查表达式是否为给定数据类型的成员。但是,与 is 运算符不同的是,as 运算符不返回布尔值,而是返回表达式的值(代替 true)或 null (代替 false)。下面的示例说明了在简单情况下使用 as 运算符替代 is运算符的结果,例如,检查 Sprite 实例是否为 DisplayObject、IEventDispatcher 和Number 数据类型的成员。

var mySprite:Sprite = new Sprite();
trace(mySprite as Sprite); // [Sprite 对象]
trace(mySprite as DisplayObject); // [Sprite 对象]
trace(mySprite as IEventDispatcher); // [Sprite 对象]
trace(mySprite as Number); // null

 

 

     在使用 as 运算符时,右侧的操作数必须是数据类型。如果尝试使用表达式(而非数据类型)作为右侧的操作数,将会产生错误。

分享到:
评论

相关推荐

    ActionScript3类型与java数据类型对应表.rar

    - AS3提供了is和as操作符来检查和转换类型,而Java通常通过instanceof关键字来检查一个对象是否属于特定类或接口。 9. 泛型: - Java引入了泛型,允许在编译时指定集合元素的类型,而AS3虽然没有直接的泛型概念,...

    Flash ActionScript 3 殿堂之路 笔记

    在深入探讨Flash ActionScript 3 (AS3) 的殿堂之路之前,我们首先需要理解AS3中的数据类型和变量声明的基本概念。AS3是一门面向对象的编程语言,它的一个核心特性是“一切都是对象”(Everything is an Object)。这...

    as 3.0 中文手册

    2. 类型转换:通过`as`或`is`关键字进行类型检查和转换,如`if (myVar is String) {...}`。 3. 动态性:尽管AS3.0是强类型,但它是动态类型的,允许在运行时改变对象的类型。 4. 函数重载:一个函数可以根据传递的...

    actionScript3.0

    在 ActionScript 3.0 中,根据数据的复杂程度,数据类型大致可以分为两大类:简单数据类型和复杂数据类型。简单数据类型用于表示基本的数据结构,如数字、字符串等;而复杂数据类型则涉及到了类和对象等更高级的概念...

    ActionScript3.0编程实例

    2. **严格类型系统**:与AS2.0相比,AS3.0采用严格的类型系统,变量必须声明类型,这有助于减少错误并提高代码的可读性和性能。 3. **事件驱动编程**:AS3.0中,事件处理是核心机制之一。通过addEventListener和...

    AS使用小实例

    在AS中,类型转换是非常常见的操作,因为ActionScript是强类型的语言,这意味着每个变量在声明时必须指定其数据类型。在某些情况下,我们可能需要将一个变量从一种类型转换为另一种类型。例如,我们可能有一个字符串...

    ActionScript 3.0基础教程

    ActionScript 3.0是Flash Professional、Flash Builder以及Flex SDK中的主要编程语言,它相较于之前的版本(ActionScript 2.0)有了显著的改进,包括更严格的类型系统、更快的执行速度和更现代的面向对象特性。AS3.0...

    ActionScript 3.0语法参考手册

    在ActionScript 3.0中,它还可以用于字符串连接。 **示例代码:** ```actionscript var x:Number = 5; var y:Number = 10; trace(x + y); // 输出 15 ``` **字符串连接示例:** ```actionscript var name:String =...

    ActionScript3.0

    It is intended to be used with other instructional media, such as the Programming ActionScript 3.0 guide, and resources on the Adobe website, such as the ActionScript Topic Center.

    AS3.0殿堂之路_笔记

    AS3.0中有两类数据类型:简单数据类型和复杂数据类型。简单数据类型包括布尔型(Boolean)、整型(int和uint)、浮点型(Number)、字符串(String)。复杂数据类型涉及Array(数组)、Date(日期)、Error(异常)、...

    flash actionScript

    ActionScript 2.0 支持多种数据类型,包括基本数据类型和复杂数据类型。 - **基本数据类型**: - `Number`:数值类型,可以表示整数和浮点数。 - `String`:字符串类型,用于表示文本。 - `Boolean`:布尔类型,...

    AS3.0_AS3殿堂之路_笔记[七月经典]

    在AS3中,数据类型分为简单数据类型与复杂数据类型两大类。 **简单数据类型**包括: - **Boolean(布尔)**: 表示逻辑值,仅包含两个可能的值:`true` 和 `false`。 - **int(有符号整型)**: 32位有符号整数类型...

    java5与as3语法的区别

    - ActionScript 3 提供了 `is` 运算符,如 `if (myvar is String) {...}`,以及 `as` 运算符,用于类型转换,如 `var orderIdn:number = orderId as Number;` 12. 基本数据类型: - Java 5 包括 byte, int, long,...

    ActionScript_3.0_精彩范例词典.doc

    5. 数学函数:`isFinite()`、`isNaN()`、`parseFloat()`、`parseInt()`以及`Array()`、`Boolean()`、`Number()`、`String()`和`Object()`等类型转换函数。 类对象部分介绍了如何使用类来组织和扩展代码,如`Class`...

    ActionScript 3.0本地播放器源码(入门学习专用)

    这通常涉及在类中设置和检查变量,如`isPlaying` 或 `currentTrack`。 8. **XML配置文件**:有时,播放器会使用XML文件来存储媒体列表,方便动态加载和管理。AS3中的`XML` 类可以解析和操作这些文件。 9. **错误...

Global site tag (gtag.js) - Google Analytics