如何在Actionscript中获取对象中的属性列表?

Geo*_*F67 30 flex3 actionscript-3 filterfunction

我有一个数据提供者和我的数组的过滤函数,它被分配给我的数据提供者.

如何将数据提供者(item.data)的每一行中的属性列表传递给过滤器函数?

例如,如果我的对象包含:

  • 宾语
    • 名称
    • 电子邮件
    • 地址

然后我想在我的过滤功能中查看姓名,电子邮件和地址.不幸的是,我不知道这些属性将会是什么.

有任何想法吗?

Her*_*rms 53

如果它是一个动态对象我相信你可以做这样的事情:

var obj:Object; // I'm assuming this is your object

for(var id:String in obj) {
  var value:Object = obj[id];

  trace(id + " = " + value);
}
Run Code Online (Sandbox Code Playgroud)

这就是它在AS2中的表现,我相信它仍适用于AS3中的动态对象.我认为它将显示的属性更受限于非动态对象.


Joe*_*oks 10

flash.utils.describeType(value:*) 还将为您提供对象的属性列表.


Rob*_*Bak 7

你可能正在寻找

ObjectUtil.getClassInfo(object) 
Run Code Online (Sandbox Code Playgroud)

,看到:

http://livedocs.adobe.com/flex/3/langref/mx/utils/ObjectUtil.html#getClassInfo%28%29

请注意,它中存在一个错误,导致它将XML视为非动态数据类型.有关该错误的更多信息:bugs.adobe.com/jira/browse/SDK-17712


小智 6

for-in仅适用于动态对象.对于类型化对象,您需要使用某种反射来获取属性名称(例如http://www.as3commons.org/as3-commons-reflect/index.html)

/安德烈.