ActionScript 3.0基础——数据类型的检验

AS3以前,我们检测数据类型可以用instanceof和typeof运算符,在AS3中新增了is和as运算符。下面就谈谈它们的用法。

package {
    import flash.display.Sprite;
    import flash.display.DisplayObject;
    import flash.events.IEventDispatcher;
    public class DataTypeCheck extends Sprite
    {
        public function DataTypeCheck()
        {
            var mySprite:Sprite = new Sprite();
            trace(mySprite instanceof Sprite);           //true
            trace(mySprite instanceof DisplayObject);    //true
            trace(mySprite instanceof IEventDispatcher); //false
            trace(mySprite is Sprite);                   //true
            trace(mySprite is DisplayObject);            //true
            trace(mySprite is IEventDispatcher);         //true           
            trace(typeof(mySprite));                     //object
            trace(mySprite as Sprite);                   //[object Sprite]
            trace(mySprite as DisplayObject);            //[object Sprite]
            trace(mySprite as IEventDispatcher);         //[object Sprite]
            trace(DisplayObject(mySprite));              //[object Sprite]
            trace(mySprite as Number);                   //null
        }
    }
}

说明:

  • instanceof运算符在AS3时代已经过时,它用一个对象是不是该类及其父类的实例,返回一个布尔值。
  • is运算符用来检验一个对象是不是该类及其父类的实例以及与它们有没有实现了给定的接口,返回一个布尔值
  • typeof用于简单数据类型和复杂数据类型的检验。
  • as运算符用于复杂数据类型的检验,检验一个表达式是不是给定的数据类型。但和is运算符不同,as 运算符返回该表达式的值,没有值返回null
  • as运算符最主要用途应该是显示转换复杂数据类型,这一点Adobe似乎在帮助文件中没提及。
评论: 1 | 引用: 0 | 查看次数: -
引用孔楠[2010-06-11 11:00 AM | 无网站 | 无Mail | 58.56.38.210 | 删除 | 取消审核 | 回复回复]
[正在加载评论信息,请稍候...]
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭