我有一个代表数据库表的对象。我想遍历这个对象并打印每个值。我可以用什么来做到这一点?
我想在我的 mxml 中执行此操作而不是 actionscript
对于每个对象属性,我想创建一个输入字段
查看有关 Flex 3 循环的文档。如果你这样做,你会发现:
for..in
循环遍历对象的
for..in
属性或数组的元素。例如,您可以使用 for..in 循环遍历通用对象的属性(对象属性不按任何特定顺序保存,因此属性可能以看似随机的顺序出现):
var myObj:Object = {x:20, y:30};
for (var i:String in myObj)
{
trace(i + ": " + myObj[i]);
}
// output:
// x: 20
// y: 30
我建议您不要尝试为每个对象创建输入字段,而是查看DataGrid和自定义ItemEditors。
我同意这个答案没有用。它仅适用于通用对象,不适用于用户声明的对象。
但是,这里有一些代码应该/可以使用上面建议的 describeType 工作。(而且我真的不认为它太复杂)。请注意,仅公开公共属性/方法等:
var ct:CustomObject = new CustomObject();
var xml:XML = describeType(ct);
for each(var accessor in xml..accessor) {
var name:String = accessor.@name;
var type.String = accessor.@type;
trace(ct[name]);
}
“for...in”的问题在于它只迭代动态属性。也就是说,如果你的对象被定义为一个类(而不是动态的),“for..in”不会给出任何东西。
ActionScript 文档建议对固定属性使用 describeType(),但对于这个简单的任务来说,它看起来过于复杂……</p>
您可以像 actionscript 一样编写它,但将其包含在带有 script 标签的 mxml 文件中:
<mx:Script>
<![CDATA[
public function LoopAndPrint() : void
{
//your code here
}
]]>
</mx:Script>