Tengo una función que simula el rastro que deja un personaje andando. Todo funciona bien cuando la ejecuto una vez. El problema aparece cuando quiero hacer cuatro tramos. Me gustaría que esperase a terminar uno, para empezar el siguiente, pero me dibuja los 4 a la vez.
Ésta es mi función:
Código :
for (var i:int=1; i < 5; i++) {
posFin=Avanzar(posIni,4,90*i,0);
posIni = posFin;
}
function Avanzar(origen: Array, numPasos:uint, orientacion:Number, numLinea:uint):Array {
var frame:uint=0;
var numFramesPaso=2;
var destino:Array=ConvertirPasosPixel(numPasos,orientacion,origen);
var destinoInt:Array = new Array ();
var linea:MovieClip = new MovieClip ();
linea.graphics.lineStyle(1);
linea.graphics.moveTo(origen [0],origen [1]);
var nombre:String="linea_"+String(numLinea);
linea.name=nombre;
this.addChild(linea);
var segundos:Number=0.5;
var intervalo:Timer=new Timer(segundos*1000);
intervalo.addEventListener(TimerEvent.TIMER, playIt);
intervalo.start();
function playIt(e:TimerEvent) {
++frame;
destinoInt [0] = origen [0] + (frame * (destino [0] - origen [0]) / (numPasos*numFramesPaso));
destinoInt [1] = origen [1] + (frame * (destino [1] - origen [1]) / (numPasos*numFramesPaso));
linea.graphics.lineTo(destinoInt [0], destinoInt [1]);
Mimi.x=destinoInt[0];
Mimi.y=destinoInt[1];
if (frame >= (numPasos*numFramesPaso)) {
intervalo.removeEventListener(TimerEvent.TIMER, playIt);
}
}
return destino;
}
Muchísimas gracias.
