如何创建对象的ArrayCollection?

时间:2011-07-25 17:54:42

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

我刚开始弯曲,我有一个如下所示的课程:

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

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

如何创建Items类型的ArrayCollection?

感谢。

3 个答案:

答案 0 :(得分:3)

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);

答案 1 :(得分: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引用数组。

答案 2 :(得分:1)

代码中的某处:

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方法以在类型错误时抛出错误。