Actionscript 3 在数组中分离数据以在Flex中显示

Actionscript 3 在数组中分离数据以在Flex中显示,actionscript-3,flash,flex4.5,mxml,flexbuilder,Actionscript 3,Flash,Flex4.5,Mxml,Flexbuilder,我是flex/FlashBuilder的新手,我需要从文本文档中读入数据,然后将其切成我在自定义类中设置的片段 到目前为止,所有这些都奏效了 var theCustomer:Customer=new Customer(name,address,phoneNo,comment,custNo); custArray.addItem(theCustomer); 所以现在我想做的是只在一个组合框中显示数组中每个条目的名称,然后在关闭时将所有细节显示在一个列表框中 如果我只是将custArray绑定到组

我是flex/FlashBuilder的新手,我需要从文本文档中读入数据,然后将其切成我在自定义类中设置的片段

到目前为止,所有这些都奏效了

var theCustomer:Customer=new Customer(name,address,phoneNo,comment,custNo);
custArray.addItem(theCustomer);
所以现在我想做的是只在一个组合框中显示数组中每个条目的名称,然后在关闭时将所有细节显示在一个列表框中

如果我只是将custArray绑定到组合框,它会显示我设置的
name:address:phoneNo:comment:custNo
,但就像我说的,我只想要名称,那么如何将名称与数组中的每个客户条目分开呢


任何对你的帮助都是很棒的,请提前感谢

如果我正确理解了您的问题,我想您应该在combobox上设置labelField属性。这将指定要在标签中使用的源数据对象中的字段

<s:ComboBox dataProvider="{custArray}" labelField="name"/>

组合框有几种方法可以指定它应该使用什么作为
数据提供程序中每个项目的“标签”:

  • 默认情况下,如果
    数据提供程序
    中的元素具有名为
    标签
    的属性,并且该属性包含
    字符串
    ,则它将显示该值
  • 组合框
    有一个属性,您可以使用该属性告诉它在哪里可以找到每个项目的“标签”。在您的情况下,可以将
    labelField
    设置为“name”
  • 组合框
    有一个属性,允许您使用一个函数(您编写的函数)指定每个项目应显示的文本
我建议使用
labelField
,因为在这种情况下,这似乎是最直接的:

<s:ComboBox dataProvider="{custArray}" labelField="name" />


正如您自己所暗示的,您应该使用数组的方法。我想我当时太忙了,没有注意到您的答案:)在添加一些额外的细节时,我留下了我的答案。。。但是OP应该接受这一点,因为你是第一个这样做的:)没问题——我只是占了你三分钟的优势!我喜欢你的答案,因为它有更多的信息。谢谢你回复Bill Turner,但它没有改变组合框中显示的信息,它仍然在下拉菜单中并排显示所有5个字段,而且没有过滤名称字段。@比尔·特纳,正如你在阅读后续问题时所看到的,我没有为labelField输入足够的代码,但在修复代码后,它现在又能工作了。首先感谢你花时间回复。谢谢你回复Sunil D,但是它没有改变组合框中显示的信息,它仍然在下拉菜单中并排显示所有5个字段,并且没有过滤名称字段。@SteveAndrews-Hmm,也许您应该显示用于实例化组合框的代码。这看起来像比尔·特纳和我的建议吗?您是否正在为组合框使用自定义外观(它为组合框的下拉列表声明了自己的项目呈现程序)?这就是我正在使用的组合框。这是Air应用程序工作的屏幕截图以及所有5个字段的输出。谢谢你的帮助,也谢谢所有帮助我的人,还有其他人能帮我吗?这有点让我毛骨悚然,因为这有点令人沮丧(就像有时编码一样):)我唯一想到的是,你的
Customer
类可能有一个toString()或其他返回文本的方法。我意识到当你遇到比尔·特纳和我都怀疑的问题时,它通常会为每个项目打印“[Object]Object”,。所以你必须在某个地方有一些代码让它打印出来。