首页 > 其他 > 详细

actionscript遍历类的所有属性

时间:2014-03-24 16:53:08      阅读:427      评论:0      收藏:0      [点我收藏+]

var arr:Cls = new Cls();

arr["property1"] = "property111"; arr.property2 = "property2222"; var xml:XML = describeType(arr);

for (var m in arr) {         trace (m); }

trace (xml);

 

 

bubuko.com,布布扣
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 对象,包含有关作为参数传入的对象的详细信息。 它提供有关对象的以下信息: 
对象的类
类的属性
从类到其基类的继承树
类实现的接口
类的已声明实例属性
类的已声明静态属性
类的实例方法
类的静态方法 
(对于类的每个方法)名称、参数的数量、返回类型和参数类型 
注意: describeType() 只显示公共属性和方法,而不会显示私有、在包内部或在自定义命名空间中的属性和方法。 
bubuko.com,布布扣

actionscript遍历类的所有属性,布布扣,bubuko.com

actionscript遍历类的所有属性

原文:http://www.cnblogs.com/ference/p/3620232.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!