我正在尝试在列表上实现查找功能。
在实现find的动作脚本方法中,我试图遍历list.dataProvider的内容并获取labelField的动态内容。有没有办法使用变量的内容来从ObjectProxy中获取字段。我看到ObjectProxy有一个getProperty方法,但它受到保护。
代码段:
<mx:Canvas>
<mx:Script>
<![CDATA[
[Bindable]public var data:ArrayCollection;
[Bindable]public var name:String;
private function findItem_():void
{
for (var ii:int = 0; ii < data.length; ii+)
{
// how do I do this????
if (data[ii].<contents of name>.indexOf(findTI_.text) >= 0)
{
list.selectedIndex = ii;
break;
}
}
}
]]>
</mx:Script>
<mx:List id="list" dataProvider="{data}" labelField="{name}"; />
<mx:TextInput id="findTI" change="findItem_"/>
</mx:Canvas>
感谢您的帮助。
答案 0 :(得分:0)
数组集合是一个对象数组。因此,在data
的任何索引处都会有一个对象。然后,您可以像使用点或方括号语法的任何其他对象一样访问它。
for(var i:uint = 0 ; i < data.length; ++i)
{
var tempObject:Object = data[i];
if(tempArray[name] == findTI.text)
{
//you have found a column named `name` that matches the ontents of `findTI`
}
}
答案 1 :(得分:0)
您可以在flash.utils中创建Proxy类的扩展,并让它为您添加到对象的值保留属性名称列表。这基本上是一个OrderedObject类。如果你谷歌那么,你应该能够找到代码片段来向你展示它是如何工作的。然后,如果要查找已分配属性的名称,则可以使用这些方法。