Ver Mensaje Individual
  #2 (permalink)  
Antiguo 15/07/2005, 12:33
culantrax
 
Fecha de Ingreso: julio-2005
Mensajes: 54
Antigüedad: 18 años, 10 meses
Puntos: 0
¿Qué tal, Antihem?

La función getTimer() ha demostrado ser muy útil, sólo tienes que adecuarla a tus necesidades y listo. Aquí un ejemplo que sirve para attachear tres movie clips dentro del stage con una pausa de 1 segundo entre cada uno (pueden ser pausas desde un milisegundo hasta horas, sólo hay que pensar en lo práctico de cada caso)

1.- Obtenemos el valor del contador de flash (se lee en milisegundos) y lo asignamos a una variable llamada "tiempo":
Código:
var tiempo = getTimer();
2.- Teniendo la variable "tiempo" definida con el valor del timer, procedemos a crear las variables que corresponderán al tiempo que queremos que dure cada pausa entre un movieclip y el otro. En este caso, se desea que al pasar un segundo, aparezca un movieclip; al pasar dos segundos, aparezca el siguiente, y al transcurrir tres segundos, debe aparecer el tercero. La cuarta pausa es para detener la función, pero eso lo veremeos más adelante. Recordemos que las medidas se establecen en milisegundos, entonces, por comodidad, lo multiplicamos por mil y lo sumamos al tiempo inicial:
Código:
var pausa1 = tiempo+(1*1000); 
var pausa2 = tiempo+(2*1000);
var pausa3 = tiempo+(3*1000);
var pausa4 = tiempo+(4*1000);
Flash empieza a contar desde cero, entonces, suponiendo que '0' es el valor de "tiempo", después de hacer las debidas operaciones matemáticas, lo anterior equivale a:
pausa1 = 1 segundo
pausa2 = 2 segundos
pausa3 = 3 segundos
pausa4 = 4 segundos

Bien, ahora hay que iniciar una función que se encargará de leer constantemente el tiempo transcurrido al momento (volverá a obtener un valor a través de getTimer(), pero esta vez será a cada instante), con lo cual detectará si ya pasaron 1, 2, 3 o 4 segundos a partir de que por primera vez se determinó la variable "tiempo".

Código:
this.onEnterFrame = function() {
	var al_momento = getTimer(); // Lee constantemente el tiempo transcurrido

// Se hacen las comparaciones de tiempos. Cuando el tiempo actual es
// mayor a cada una de las pausas, se atachea el movie clip:
	if (al_momento>pausa1) {
		attachMovie("uno", "uno", 1, {_y:10});
	}
	if (al_momento>pausa2) {
		attachMovie("dos", "dos", 2, {_y:20});
	}
	if (al_momento>pausa3) {
		attachMovie("tres", "tres", 3, {_y:30});
	}

// Después de cuatro segundos, le decimos que concluya la función
// y así ahorramos un poco de procesos en el CPU:
	if (al_momento>pausa4) {
		delete this.onEnterFrame;
		trace("timer concluido");
	}
};
¡Listo! Esta función la puedes poner en la timeline principal o dentro de un movieclip especial que será donde se cargarán los demás (creo que esto es el problema que tienes). Espero que te sea de utilidad.