Comunidad de diseño web y desarrollo en internet online

Boton para reproducir animación mientras está pulsado

Citar            
MensajeEscrito el 22 Sep 2011 07:55 am
Buenos días a todos:
Necesito tener en un botón (que se llama "All") que reproduce una animación externa "sistemas.swf" mientras está pulsado, parándose cuando se suelta el botón. Esta animación es una serie de gráficos a mostrar en un intervalo dado, en un swf externo, animado con:

stop();
var tiempo:Timer = new Timer(2000, 1); // Fijo el intervalo
tiempo.addEventListener(TimerEvent.TIMER_COMPLETE, funcion2);
tiempo.start();

function funcion2(event:TimerEvent):void
{
gotoAndPlay(2); // animo en bucle mandando al frame siguiente, y del último al primero
}

Hasta aquí todo bien, pero:

1.- ¿Puedo saber desde la animación original en qué frame de la animación "sistemas" estoy en cada momento? ¿Hay forma de comunicar ambas animaciones?.
2.- La animación "sistemas" sólo debería reproducirse mientras el boton "All" está pulsado, parándose cuando se suelta el ratón, en el frame que caiga en ese momento. Lo estoy haciendo con:

function All(event:MouseEvent):void
{
if (boton_activo != "")
{removeChild(boton_loader);}
boton_activo = "";
All.addEventListener(mouseDown, Play); //funcion externa que dispara la animacion
All.addEventListener(mouseOut, Stop)// funcion que para la animancion
}
function Play(event:MouseEvent):void
{
system_display_loader.load(new URLRequest("sistemas.swf"));
addChild(system_display_loader);
system_display_loader.x = 666;
system_display_loader.y = 165;
}
function Stop(event:MouseEvent):void
{
removeChild(system_display_loader);
system_display_loader.load(new URLRequest(sistema));// cargo el sistema en que se ha quedado la animación al hacer STOP
addChild(system_display_loader);
system_display_loader.x = 666;
system_display_loader.y = 165;
}
Pero no hay forma.

Por potez36

30 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Sep 2011 10:18 am
Redefino la pregunta. He evitado usar la comunicacion integrando una en otra.
El problema en realidad es:
¿Como hago que un botón dispare un bucle de gráficos en un mismo loader, parando la secuencia cuando dejo de pulsar el boton?

function All(event:MouseEvent):void
{
if (event:MouseEvent.mouseDown)==true)
{trace ("boton ALL presionado");}

"All" es el nombre dela función asociada al botón "all"

Por potez36

30 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Sep 2011 12:12 pm
Me contesto yo mismo:
EL problema era la definición del listener al asociarlo al botón.
Estaba así:

all.addEventListener(MouseEvent.CLICK, All);

cuando lo cambio a:

all.addEventListener(MouseEvent.MOUSE_DOWN, pulsado);
all.addEventListener(MouseEvent.MOUSE_UP, levantado);

comienza a funcionar correctamente.

Un saludo a todos y gracias

Por potez36

30 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.