Как создать коллекцию объектов ArrayCollection? - PullRequest
0 голосов
/ 25 июля 2011

Я новичок в сгибании, у меня есть класс, показанный ниже:

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

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

Как мне создать ArrayCollection типа Items?

Спасибо.

Ответы [ 3 ]

3 голосов
/ 25 июля 2011
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 голосов
/ 25 июля 2011

Вы также можете создать их в 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>

Затем ссылаться на массив по его идентификатору.

1 голос
/ 25 июля 2011

Где-то в вашем коде:

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 напечатаны не так, как вектор, поэтому вы ничего не можете сделать, чтобы все элементы в вашей коллекции имели тип Items. [Если вы не расширяете ArrayCollection каким-либо образом и не переопределяете методы addItem / addItemAt, чтобы выдавать ошибки, если тип неправильный.

...