Foros del Web » Creando para Internet » Flash y Actionscript »

mantener botón pulsado

Estas en el tema de mantener botón pulsado en el foro de Flash y Actionscript en Foros del Web. Hola, estoy haciendo una ventana que tiene zoom para agrandar lo que contiene, pero, no sé como hacer para que se ejecuten estas acciones repetidas ...
  #1 (permalink)  
Antiguo 21/05/2008, 05:24
 
Fecha de Ingreso: febrero-2007
Mensajes: 111
Antigüedad: 17 años, 9 meses
Puntos: 0
mantener botón pulsado

Hola, estoy haciendo una ventana que tiene zoom para agrandar lo que contiene, pero, no sé como hacer para que se ejecuten estas acciones repetidas veces mientras el botón siga pulsado.

En el constructor:

Código:
...
//mas_btn es el botón de más zoom
this.mas_btn.addEventListener(MouseEvent.MOUSE_DOWN, masPulsado);
...

En la función que responde al evento

Código:
private function masPulsado(evento:MouseEvent):void {
	//los diferentes elementos de la ventana ( barra, fondo, ...)		
                        this.barra.width += 4;
			this.fondo.width += 4;
			this.fondo.height += 3;
			this.mivideo.width += 4;
			this.mivideo.height += 3;
}

He mirado mucho por ahí pero no veo nada similar a lo que busco, ¿alguien sabe cómo sería? Yo lo que quiero es que mientras el botón siga pulsado pues que se haga un continuo aumento del tamaño. Saludos y gracias de antemano.
  #2 (permalink)  
Antiguo 21/05/2008, 06:40
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 20 años, 4 meses
Puntos: 12
Respuesta: mantener botón pulsado

Mira a ver si es esto lo que quieres:
Código:
mas_btn.addEventListener(MouseEvent.MOUSE_DOWN, masPulsado);
mas_btn.addEventListener(MouseEvent.MOUSE_UP, masLiberado);
function masPulsado(event:MouseEvent):void {
	addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
function masLiberado(event:MouseEvent):void {
	removeEventListener(Event.ENTER_FRAME, onEnterFrame);
}
function onEnterFrame(event:Event):void {
	barra.width += 4;
	// y aquí el resto de variaciones.
}
Cuando se presiona el botón se acciona un evento ENTER_FRAME y cuando se suelta el botón se detiene dicho evento.
Mira a ver si era esto...
Saludos!
__________________
Los ignorantes se empeñan en enseñar. Los sabios en aprender.
SourceForge
  #3 (permalink)  
Antiguo 21/05/2008, 09:42
 
Fecha de Ingreso: febrero-2007
Mensajes: 111
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: mantener botón pulsado

muchas gracias Mahalo, la verdad es que no se me ha ocurrido lo del onEnterFrame, además de esto añado otro listener en masPulsado() porque tal y como está, si pulsa el botón y te sales de su zona si levantar el dedo, pues si luego te pones sobre él, actúa sin que lo pulses.

Código:
mas_btn.addEventListener(MouseEvent.MOUSE_DOWN, masPulsado);
mas_btn.addEventListener(MouseEvent.MOUSE_UP, masLiberado);
function masPulsado(event:MouseEvent):void {
	addEventListener(Event.ENTER_FRAME, onEnterFrame);
        this.mas_btn.addEventListener(MouseEvent.MOUSE_OUT, masLiberado);
}
function masLiberado(event:MouseEvent):void {
	removeEventListener(Event.ENTER_FRAME, onEnterFrame);
}
function onEnterFrame(event:Event):void {
	barra.width += 4;
	// y aquí el resto de variaciones.
}
  #4 (permalink)  
Antiguo 21/05/2008, 09:51
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 20 años, 4 meses
Puntos: 12
Respuesta: mantener botón pulsado

Ok, exacto. No lo tuve en cuenta, bien hecho! Sin embargo, esa declaración puede ir fuera de la función masPulsado, con el resto de eventos MouseEvent.
Saludos!
__________________
Los ignorantes se empeñan en enseñar. Los sabios en aprender.
SourceForge
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:10.