One technique I often use is to create the array as a private member of
a class and guard it against including invalid classes. For example:
import mypackage.Item;
class mypackage.ItemList extends Object {
public function ItemList() {
super();
_items = new Array();
}
public function get itemCount():Number {
return _items.length;
}
public function addItem(item:Item):Void {
if (!(item instanceof Item)) {
throw new Error("Invalid item: " + item);
}
_items.push(item);
}
public function getItem(index:Number):Item {
var item:Item = Item(_items[index]);
return (item == undefined) ? null : item;
}
public function removeItem(item:Item):Void {
for (var i:Number = _items.length; i > 0; --i) {
if (_items[i - 1] == item) {
_items.splice(i - 1, 1);
}
}
}
public function removeItemAt(index:Number):Void {
_items.splice(index, 1);
}
public function toString():String {
return "[type ItemList(items=" + _items.join(", ") + ")]
";
}
private var _items;
}
It is cumbersome to do this for all types, but it's handy for many
occasions. (I do really miss C++ templates, though....)
―
Mike Keesey
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:flashcoders-
> [EMAIL PROTECTED] On Behalf Of dc
> Sent: Saturday, September 16, 2006 7:36 PM
> To: Flashcoders mailing list
> Subject: [Flashcoders] specifying type of an array contents?
>
> is there a way to tell flash what types an array contains?
>
> eg given this:
>
> var btnClipArray:Array;
>
> --- later:
>
> for (var btn in btnClipArray) {
> btn.removeMovieClip();
> }
>
> flash defaults to thiking the array contains only strings, so the
> movieclip methods throw a compile error. of course, i can cast or
> otherwise hack, but it would be nice not to...
>
> var btnClipArray:Array:MovieClip; ?
>
> /dc
> -------------------------------------------
> David "DC" Collier
> mailto:[EMAIL PROTECTED]
> +81 (0)80 6521 9559
> skype: callto://d3ntaku
> -------------------------------------------
> Pikkle 株式会社
> http://www.pikkle.com
> -------------------------------------------
> _______________________________________________
> [email protected]
> To change your subscription options or search the archive:
> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>
> Brought to you by Fig Leaf Software
> Premier Authorized Adobe Consulting and Training
> http://www.figleaf.com
> http://training.figleaf.com
_______________________________________________
[email protected]
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com