Uso de currentFrame. Acciones asociadas a fotogramas I.
Sunday, 6. December 2009
Cuando utilizamos Action Script 3, currentFrame es una propiedad que podemos utilizar en flash para referirnos al fotograma actual, o a un fotograma específico tanto en la linea de tiempo principal, como en la linea de un movieclip. Esto puede ser de gran utilidad cuando queremos realizar una acción en un momento específico de la reproducción o funcionamiento de la aplicación o animación que estemos desarrolando, refiriendonos a fotogramas puntuales y no a tiempo, u otros métodos.
Si utilizamos currentFrame sólo, nos estamos refiriendo a la línea de tiempo principal. Podemos probarlo de la siguiente forma:
Por ejemplo, queremos que se ejecute una acción en el fotograma 5:
addEventListener(Event.ENTER_FRAME, comprobarFotograma);
function comprobarFotograma(e:Event){
if(currentFrame==5){
trace("Hola");
}
}
Igualmente podemos asociarlo a un Movieclip. Supongamos que tenemos en el escenario un movieclip llamado miMC. Queremos realizar cierta acción sólo cuando este se empiece a reproducir. podemos hacerlo de la siguiente forma:
miMC.addEventListener(Event.ENTER_FRAME, comprobarFotograma);
function comprobarFotograma(e:Event){
if(miMC.currentFrame==5){
trace("Hola");
}
}
Por lo tanto si usamos currentFrame nos referimos al fotograma de la línea principal, mientras que si queremos asociarlo a un movieclip debemos poner nombreClip.currentFrame.
Para utilizar nombre de etiqueta en los fotogramas, y no referirnos a ellos por su número, no podemos utilizar currentFrame. Debemos Utilizar currentLabel
Espero que esta explicación corta sea de utilidad para conocer un aspecto más de AS3.
Dudas, comentarios, opiniones y aportes son bien recibidos. Puedes dejar un comentario en este mismo blog.
Un saludo.
Esk. Samuel Jimenez.






Pablo Says:
¡Muy bien!, Lo he leido todo, está genial el sitio. He aprendido varias cosas.
Tengo una duda ¿cómo se puede hacer esto mismo pero si contar los fotogramas?… se podrá detecatar un “Frame Label” o alguna manera de marcar la línea de tiempo con algún código que pueda ser detectable.
eskombro Says:
Claro, cuando le pones una etiqueta al frame, puedes utilizar currentLabel=”etiqueta”… Gracias por el comentarrio, ya actualizo esta información en el post!
un saludo
Eskombro
currodelatajadera Says:
ves eskombro, aqui explicas con un movieclip, pero lo que busco es que al pulsar boton vaya al fotograma x del swf externo que se ha cargado en un loader.
JGN Says:
Yo busco lo mismo que currodelatajadera
Korowa Says:
que Buenos ejemplos mennn!! fantastica esa pagina!!
MARCASTELEON Says:
buen ejemplo y exelente pagina, no hay muchos sitios de as3 con ejemplos claros y en español.
yo utilizo el currentFrame para hacer que al presionar un boton un movieclip se vaya dezplazando asendente o decendentemente asi:
function accion (Event:MouseEvent) :void
{
miMC.gotoAndStop (miMC.currentFrame + 1);
}
boton.addEventListener(MouseEvent.CLICK,accion);
ò
function accion2 (Event:MouseEvent) :void
{
miMC.gotoAndStop (miMC.currentFrame – 1);
}
boton2.addEventListener(MouseEvent.CLICK,accion);
andres Says:
Lo maximo gracias