【问题标题】:Flex Spark List only Shows the last variable of an ArrayFlex Spark List 仅显示数组的最后一个变量
【发布时间】:2013-02-25 09:39:36
【问题描述】:

我想在 sparkList 上显示来自 Arraycollection 的变量。但是列表总是只显示最后一个变量。这是代码。

<fx:Script>
    <![CDATA[

[Bindable]private var arc:ArrayCollection;

private function price(event:Event):void {

  var arr:Array='[web response]';
  for(var i:int=0; i < arr.length; i++){
  if((arr[i]['SalesPrice'] >= 0) && (arr[i]['SalesPrice'] <= 100)) {

  var string:String=arr[i]['InventoryId'];
  var array:Array=new Array(string);
  arc=new ArrayCollection(array);
  trace(arc);
  }
  }
    }

  ]]>
  </fx:Script>

 <s:List id="myList" dataProvider="{arc}" />

在跟踪中获得了输出,但我需要将其显示为列表。任何帮助

【问题讨论】:

  • 该代码完全不可读,这可能是您难以追踪错误的主要原因。除此之外,您似乎正在为原始集合中的每个项目创建一个新的 ArrayCollection,并在该循环的每次传递中覆盖前一个项目。

标签: arrays actionscript-3 apache-flex flash-builder


【解决方案1】:

看来你的逻辑不太对。 在你的脚本中

arc=new ArrayCollection(array);

列表不正确;而不是只使用

arc.addItem(数组);

所以你的代码变成了;

var arr:Array = '[web response]';
arc = new ArrayCollection();
for(var i:int=0; i < arr.length; i++){
    if((arr[i]['SalesPrice'] >= 0) && (arr[i]['SalesPrice'] <= 100)) {
        var string:String=arr[i]['InventoryId'];
        var array:Array=new Array(string);
        arc.addItem(array);
        trace(arc);
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-01
    • 1970-01-01
    相关资源
    最近更新 更多