私はフレックスを初めて使用します。以下に示すクラスがあります。
public class Items extends Object
{
public function Items(){
super();
}
public var name:String;
public var count:int;
}
タイプItemsのArrayCollectionを作成するにはどうすればよいですか?
ありがとう。
私はフレックスを初めて使用します。以下に示すクラスがあります。
public class Items extends Object
{
public function Items(){
super();
}
public var name:String;
public var count:int;
}
タイプItemsのArrayCollectionを作成するにはどうすればよいですか?
ありがとう。
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);
これらを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で配列を参照します。
コードのどこか:
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メソッドをオーバーライドして、タイプが間違っている場合にエラーをスローしない限り。