All pastes #494960 Raw Edit

buho29

public text v1 · immutable
·published 2007-05-18 14:25 UTC
rendered paste body
class Ritmo {
	
	private var id:Number
	private var pasos:Array;
	private var current:Number;
	public var onPaso:Function;
	public var onEnd:Function;
	
	public function Ritmo(){
		pasos = new Array();
	}
	
	public function play(){
		current = 0;
		next();
	}
	
	public function addPaso(tiempo:Number){
		var tmp:Array = new Array();
		for (var i:Number = 1; i<arguments.length; i++) {
			tmp.push(arguments[i]);
		}
		pasos.push({tiempo:tiempo,arg:tmp});
	}
	
	private function next(){
		clearInterval(id);
		id = setInterval(this,"next",pasos[current].tiempo);
		if(pasos[current] != null){
			onPaso(pasos[current]);
			current++;
		}else onEnd();
	}
	
	public function toString():String{
		return "Ritmo";
	}
	
	/* uso 
	var ritmo:Ritmo = new Ritmo();

	ritmo.addPaso(100,"a","b");
	ritmo.addPaso(200,"b","a");
	ritmo.addPaso(500,"z","s");
	ritmo.addPaso(700,"s","z");
	
	ritmo.onPaso = function(obj:Object) {
		trace(this);
		trace(obj.tiempo);
		trace(obj.arg);
		trace("-------------------");
	};
	
	ritmo.onEnd = function(){
		trace("se acabo");
	}
	
	ritmo.play();
	
	*/
	
}