interface FAIterator
{
public function current();
public function next();
public function hasNext();
public function reset();
public function key();
}
class DOMElementIterator implements FAIterator
{
private var _elems:Array;
private var _index:Number = -1;
private var _size:Number = 0;
public function DOMElementIterator(elems:Array)
{
_elems = elems;
_size = _elems.length;
}
public function next()
{
var ret:Boolean;
if(ret = this.hasNext())
{
_index++;
}
return ret;
}
public function current()
{
return _elems[this.key()];
}
public function hasNext()
{
return (_size > _index + 1);
}
public function reset()
{
_index = -1;
return true;
}
public function key()
{
return _index;
}
}
class FACategoriesIterator extends DOMElementIterator
{
public function FACategoriesIterator(categories:Array)
{
super(categories);
}
public function current()
{
var temp:Object = super.current();
var clip_id:String = 'cat' + temp.attributes.i;
// create the moview clip
_root.createEmptyMovieClip(clip_id, temp.attributes.i);
// set the start position, this will end up changing.
_root[clip_id]._x = 0;
_root[clip_id]._y = 0;
// set what it looks like and move it
_root[clip_id].lineStyle(4, 0x666666, 10);
_root[clip_id].moveTo()
return temp;
}
}
---------- USAGE --------------
while(it.next()) {
temp = it.current();
}