【问题标题】:How to create an ArrayCollection of Objects?如何创建对象的 ArrayCollection?
【发布时间】:2011-07-25 17:54:41
【问题描述】:

我是 flex 新手,我有一个如下所示的课程:

public class Items extends Object
{
    public function Items(){
        super();
    }

    public var name:String;
    public var count:int;
}

如何创建 Items 类型的 ArrayCollection?

谢谢。

【问题讨论】:

  • 如何创建String的ArrayCollection?

标签: apache-flex actionscript-3 flex4.5 arraycollection flex-mobile


【解决方案1】:
var item1:Items = new Items();
item1.name = "Name1";
item1.count = 5;

var item2:Items = new Items();
item2.name = "Name2";
item2.count = 7;

var items:ArrayCollection = new ArrayCollection([item1, item2]);

另一种方式:

var items:ArrayCollection = new ArrayCollection();

var item1:Items = new Items();
item1.name = "Name1";
item1.count = 5;
items.addItem(item1);

var item2:Items = new Items();
item2.name = "Name2";
item2.count = 7;
items.addItem(item2);

【讨论】:

    【解决方案2】:

    您也可以在 mxml 中创建这些(如果您使用的是 flex 4,则在内部)

    <s:ArrayCollection id="theCollection">
        <namespace:Items name="name 1" count="5" />
        <namespace:Items name="name 2" count="6" />
        <namespace:Items name="name 3" count="7" />
        <namespace:Items name="name 4" count="8" />
    </s:ArrayCollection>
    

    然后通过 id 引用数组。

    【讨论】:

      【解决方案3】:

      代码中的某处:

      var ac : ArrayCollection = new ArrayCollection();
      var newItem : Items = new Items();
      newItem.name = 'some value';
      newItem.count = 1;
      ac.addItem(newItem);
      newItem = new Items();
      newItem.name = 'some other value';
      newItem.count = 2;
      ac.addItem(newItem);
      newItem = new Items();
      newItem.name = 'Yet another value';
      newItem.count = 3;
      ac.addItem(newItem);
      ...
      

      ArrayCollections 的类型可能与 Vector 的类型不同,这可能毫无价值,因此您无法强制集合中的所有项目都为 Items 类型。 [除非您以某种方式扩展 ArrayCollection 并覆盖 addItem / addItemAt 方法以在类型错误时抛出错误。

      【讨论】:

        猜你喜欢
        • 2019-06-02
        • 1970-01-01
        • 1970-01-01
        • 2013-04-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-14
        相关资源
        最近更新 更多