All pastes #125449 Raw Edit

k4st

public text v1 · immutable
·published 2006-08-10 17:40 UTC
rendered paste body
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();
}