ActionScript3.0中获取变量类型的方法

news/2024/7/3 15:04:58 标签: actionscript, object, string, null, flash

AS3中一共有以下六种获取变量类型的方法:

  •   typeof
  •   instanceof
  • getQualifiedClassName
  •   getQualifiedSuperclassName
  •   is
  •   as

 

typeof运算符用来返回基元数据的类型(所谓基元数据类型是指:intuintBooleanNumberString除此以外全部都是复杂数据类型)。注意,使用typeof返回复杂数据类型时将始终得到“Object”。

typeof的使用方法如下例所示:

var size:int=10;
var color:uint=0x990000;
var flag:Boolean=false;
var num:Number=.5;
var name:String=”My Name is HuLin”;
var arr:Array=[1,2,3];
var obj:Object=new Object();
var mc:MovieClip=new MovieClip();
var shape:Shape=new Shape();
trace(typeof(size));       //int
trace(typeof(color));    //uint
trace(typeof(flag));       //Boolea
trace(typeof(num));     //Number
trace(typeof(name));   //String
trace(typeof(arr));       //Object
trace(typeof(obj));       //Object
trace(typeof(mc));       //Object
trace(typeof(shape)); //Object

      instanceofAS3以前的ActionScript版本(AS2AS1)中用来判断变量类型的运算符。在AS3中依然可以使用,但是建议不要再用,因为在它可能无法正确判断AS3中新增的数据类型。例如,有如下语句:

      var num:int=5;

      trace(num instanceof int); //false

      显然,这是错误的。在AS3中应当使用is来代替它。

 

      getQualifiedClassName运算符用来返回变量所属的类的类名,用法如下:

      

var shap:Shape=new Shape();
trace(getQualifiedClassName(shap)); //flash.display::Shape

注意,使用getQualifiedClassName只能返对象的直接归属类的类名,而不能获取整条继承链。

 

getQualifiedSuperclassName运算符用来返回对象所属类的父类的名称,用法如下:

var shap:Shape=new Shape();
trace(getQualifiedSuperclassName(shap));// flash.display::DisplayObject


      is运算符,AS强力推荐之法宝。它用来验证指定变量是否属于指定类型,是则返回true,否则返回false。用法如下:

      

var shap:Shape=new Shape();
trace(shap is Shape); //true
var num:int=5;
trace(num is Array); //false

 

      as运算符也是AS3中新增的内容。它跟is运算符的用法类似,但是它不像is一样返回trueflash,而是返回对象本身(类型匹配时会将对象转换为匹配类型)null(类型不匹配时)。用法如下:

var shap:Shape=new Shape();
trace(shap as Shape);   //[object Shape]
trace(shap as MovieClip);// null


http://www.niftyadmin.cn/n/1710105.html

相关文章

AS3复制可视对象五板斧

一,复制舞台上的影片剪 方法1——反射方法: var ClassRef:Class getDefinitionByName(getQualifiedClassName(t_mc)) as Class;var clone_mc:DisplayObject new ClassRef(); addChild(clone_mc);方法2——构造器方法: var ClassRef:Class …

AS3-E4X、QName

AS3-E4X(ECMAScript for XML) 1. AS3的XML相关类只有两个了:一个XML、一个XMLList,AS2时代的XMLNode已经被完全抛弃; 2. 记住以下术语: 简单内容XML(simplecontent),指没…

JSFL入门指导

JSFL入门 JSFL指Flash JavaScript,是JavaScript脚本文件,是用来扩展FlashIDE的重要工具。学会它、熟练使用它之后你会惊讶的发现,哇,原来可以这么高效率的做Flash啊!下面我们来看一看怎么使用JSFL: 不知道各…

AS3开发工具和资源站点

必备工具 Adobe Flash CS3/CS4Adobe Flash FlashPlayer Debugger8/9/10 常用工具Adobe Flex Builder2/3Adobe Flash Builder(Flex4)FlaseDevelop2/3 资源站点 1. Adobel Flash开发者中心http://www.adobe.com/devnet/flashhttp://www.adobe.com/devnet/flex/tourdeflexhttp://f…

如何编写AS程序——初学者第一课

AS脚本文件是文本文件,你可以使用任意的文本编辑工具编辑它并将它保存在任意位置。要用AS来控制Flash元素,那么就得将AS代码按照一定的规则跟Flash关联起来,一般而言,将AS代码跟Flash关联起来的方法有四种。第一,将AS代…

AS排序算法——给准备面试的朋友献点爱心

package {/*** 注意,此类仅仅是为了研究排序算法的效率而作.实际应用时请不要使用.因为AS3的数组本身提供了一个强大的sort函数,它* 的效率要远远高于本类中的几个函数。** 在冒泡排序、选择排序、插入排序这三个排序算法中冒泡排序的效率是最低的,其次是选择排序&a…

AS3 颜色操作函数库

package lib.base.maths{/*** 颜色转换函数库* <p>* 作者&#xff1a;Brant.Hu<br>* 日期&#xff1a;2009<br>*/publicclass CColorMath extends Object{/*** RGB颜色互补色减法混合* param color1* param color2* return* <p>* <listi…

交换显示层次

在AS中交换显示层次无外乎使用以下几个方法&#xff1a; 1. swapChildren(child1:DisplayObject, child2:DisplayObject); 2. swapChildrenAt(index1:int, index2:int);3. setChildIndex(child:DisplayObject, index:int); 4. addChild(child:DisplayObject); //将显示对象添加…