Para pausar una película de flash por algunos segundos, tenemos que extender la línea de tiempo añadiendo fotogramas hasta completar el tiempo de espera deseado. Este procedimiento resulta tedioso y origina líneas de tiempo muy largas, y lo peor es que, si se desea aumentar o reducir el tiempo, nos vemos obligados a, nuevamente, incrementar o quitar fotogramas.
Afortunadamente, se pueden evitar este tipo de tareas utilizando ActionScript.
- Cree una nueva capa de acciones y nómbrela, en nuestro caso la he llamado as. Este es un procedimiento recomendado para evitar tener el código disperso en toda la línea de tiempo.
- Vaya al fotograma donde desea que se detenga la película e inserte un nuevo fotograma clave (F6).
- De clic derecho (Ctrl+clic en Mac) y habilite Actions.
- Escriba en el panel de acciones el siguiente código:stop ();
pausa = setInterval(siga, 2000);
function siga() {
play();
}
Explicación:
La primera línea de código stop (); detiene la película en el fotograma en el cual está la acción. La línea 3 define la variable pausa que es igual a la función setInterval que tiene 2 parámetros: siga es la función que se llama cuando se cumpla el tiempo especificado y 2000 es el tiempo (en milisegundos) que dura detenido el reproductor en el fotograma. Las líneas 5 a 7 definen la función siga, o sea la acción que se debe ejectuar una vez se cumpla el tiempo. En nuestro caso, queremos que la película continue en el siguiente fotograma así que insertamos play ();
Por: Iván Gómez S.
Dudas y preguntas? Visita nuestro foro
September 23, 2008
cesarMuy bien la ayuda, aunque no aparece el tiempo maximo que se pueda ejecutar. Me resulto bien aunque tube que hacerle algunos ajustes para mi pelicula. Gracias.
September 23, 2008
adminHola Cesar, si deseas puedes comentarnos los ajustes que le hiciste.
September 23, 2008
profeivanEl tiempo de espera (en nuestro caso 2000) es en milisegundos. Lo que quiere decir esto es que la película se detendrá por 2 segundos. Si deseamos 5 segundos escribiriamos 5000.
March 2, 2009
kodkodel tiempo de espera solo me funciona la primera vez, cunado vuelve a pasar por fotograma que contiene la función no se retrasa
March 2, 2009
profeivanEl codigo debe funcionar. Revise el codigo que sigue en su película. Si desea publique el problema en nuestros foros.
May 27, 2009
ferbarbariees verdad el codigo no funciona. Solo se detiene la primera vez
May 28, 2009
Marlon CeballosTengan en cuenta que el ejemplo está hecho en AS2
May 28, 2009
profeivanintente con el siguiente codigo en el primer fotograma de la animacion:
function pause () {
play ();
clearInterval (espera);
}
y este en el fotograma donde se detiene la animacion
stop();
espera = setInterval(pause, 5000);
November 19, 2010
daniprofeivan gracias tardias, que desagradecios algunos el último codigo a mí me funciona muy bién. para que se sepa.
May 5, 2011
KuoDesignfunciona perfecto, Gracias Iván Gómez S.
November 10, 2011
francisc0es decir que no puedo utilizar ese código dentro de onEnterFrame.?
November 16, 2011
teguiHola, Gracias Profeivan, me funciono perfecto el tuyo, el primero también me funcionó (muchas gracias), pero vi que no es bueno para aplicaciones donde la idea sea hacer loops… gracias me han salvado 🙂
April 15, 2015
EdinHola necesito ayuda, ojala sea pronto, necesito que mi animacion dure 30 segundos y luego se detenga, pero no se nada de programacion
October 17, 2019
Zayra DominguezYo puse el código en un fotograma después de que se ejecuta una máscara en la animación tengo ActionScript3 y me mandó un error “Galeria, capa2, ‘Actions2’, Fotograma 446, Linea2, columna1 1120: Acceso a una propiedad pausa no definida.” No sé mucho de programación pero creo que debo definir la propiedad pausa más no sé dónde me podrían ayudar? muchas gracias.