·您当前的位置:首页 > 技术教程 >

[AS3]as3数据类型检查写法(is/as/typeof/in/instanceof)用法介绍

时间:2012-10-12 09:0251cto.com
is运算符是ActionScript 3.0中的新增运算符,用来测试变量或表达式是否为给定的数据类型。is运算符检查正确的继承层次结构,不但能够检查对象是否为特定类的实例

1) is运算符

is运算符是ActionScript 3.0中的新增运算符,用来测试变量或表达式是否为给定的数据类型。is运算符检查正确的继承层次结构,不但能够检查对象是否为特定类的实例,而且还可以检查对象是否是用来实现特定接口的类的实例。早期版本中的instanceof运算符已不再使用。例如:

  1. var mySprite:Sprite = new Sprite();   
  2. trace(mySprite is Sprite); // true   
  3. trace(mySprite is DisplayObject); // true   
  4. trace(mySprite is IEventDispatcher); // true  

说明:创建一个Sprite类的名为mySprite的实例,使用is运算符来测试mySprite是否为Sprite和 DisplayObject类的实例,以及它是否实现了IEventDispatcher接口。

is运算符检查继承层次结构,并正确地报告mySprite是Sprite或DisplayObject的实例(Sprite类是 DisplayObject类的子类)。正确地报告mySprite实现IEventDispatcher接口(Sprite类是从实现IEventDispatcher 接口的EventDispatcher类继承的)。

早期版本中的instanceof运算符虽然能识别出mySprite是Sprite或DisplayObject的实例,但不能识别mySprite是否实现了IEventDispatcher接口。

(2) as运算符

as运算符是ActionScript 3.0中的新增运算符,也可用来检查表达式是否为给定数据类型。但是,与is运算符不同的是,as运算符不返回布尔值,而是返回表达式的值(代替true)或null(代替false)。在使用as运算符时,右侧的操作数必须是数据类型。如果尝试使用表达式(而非数据类型)作为右侧的操作数,将会产生错误。

例如:

  1. varmySprite:Sprite = new Sprite();   
  2. trace(mySprite as Sprite); // [Sprite对象]   
  3. trace(mySprite as DisplayObject); // [Sprite对象]   
  4. trace(mySprite as IEventDispatcher); // [Sprite对象]   
  5. trace(mySprite as Number); // null  

(3) typeof运算符

用法为typeof expression,计算表达式expression并返回其数据类型的字符串。结果限制在6个可能的字符串值:boolean、function、number、object、string和xml。如果向用户定义的类应用此运算符,则结果为字符串object。之所以包括typeof运算符是为了向后兼容。使用is运算符可以检查类型是否兼容。表2-17说明对各个类型的表达式使用typeof运算符的结果。

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器