Esperar en un fotograma de Flash con ActionScript 2

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.

  1. 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.
  2. Vaya al fotograma donde desea que se detenga la pelí­cula e inserte un nuevo fotograma clave (F6).
  3. De clic derecho (Ctrl+clic en Mac) y habilite Actions.
  4. 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

13 thoughts on “Esperar en un fotograma de Flash con ActionScript 2

  1. September 23, 2008

    cesar Reply

    Muy 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.

  2. September 23, 2008

    admin Reply

    Hola Cesar, si deseas puedes comentarnos los ajustes que le hiciste.

  3. September 23, 2008

    profeivan Reply

    El 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.

  4. March 2, 2009

    kodkod Reply

    el tiempo de espera solo me funciona la primera vez, cunado vuelve a pasar por fotograma que contiene la función no se retrasa

  5. March 2, 2009

    profeivan Reply

    El codigo debe funcionar. Revise el codigo que sigue en su pelí­cula. Si desea publique el problema en nuestros foros.

  6. May 27, 2009

    ferbarbarie Reply

    es verdad el codigo no funciona. Solo se detiene la primera vez

  7. May 28, 2009

    profeivan Reply

    intente 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);

  8. November 19, 2010

    dani Reply

    profeivan gracias tardias, que desagradecios algunos el último codigo a mí­ me funciona muy bién. para que se sepa.

  9. May 5, 2011

    KuoDesign Reply

    funciona perfecto, Gracias Iván Gómez S.

  10. November 10, 2011

    francisc0 Reply

    es decir que no puedo utilizar ese código dentro de onEnterFrame.?

  11. November 16, 2011

    tegui Reply

    Hola, 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 🙂

  12. April 15, 2015

    Edin Reply

    Hola necesito ayuda, ojala sea pronto, necesito que mi animacion dure 30 segundos y luego se detenga, pero no se nada de programacion

Leave a Reply

Your email address will not be published. Required fields are marked *