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

boton que se quede pulsado (AS3)

Estas en el tema de boton que se quede pulsado (AS3) en el foro de Flash y Actionscript en Foros del Web. hola me gustaria realizar un menu de un numero de botones que al pulsar en uno se quede pulsado. Todo esto en AS3 No se ...
  #1 (permalink)  
Antiguo 14/11/2009, 03:55
 
Fecha de Ingreso: abril-2008
Mensajes: 143
Antigüedad: 12 años, 7 meses
Puntos: 0
boton que se quede pulsado y pasar parametros desde una funcion de una clase(AS3)

hola me gustaria realizar un menu de un numero de botones que al pulsar en uno se quede pulsado. Todo esto en AS3

No se por donde cogerlo.....alguien me ayuda a hacerlo??

un saludo
__________________
www.davidhs.es diseño Grafico y Web

Última edición por Dustito; 15/11/2009 a las 10:04
  #2 (permalink)  
Antiguo 14/11/2009, 14:30
Avatar de Jime25  
Fecha de Ingreso: septiembre-2009
Ubicación: Mi casa
Mensajes: 1.213
Antigüedad: 11 años, 2 meses
Puntos: 138
Respuesta: boton que se quede pulsado (AS3)

hola!!
o sea que...
si presionás por ejemplo, el botón "inicio" aparezca el texto inicio y éste quede como botón activo??
no sé si entendí bien.
Saludos
__________________
Jime~

Mi blog.
Mi twitter.
  #3 (permalink)  
Antiguo 14/11/2009, 14:39
Avatar de Jime25  
Fecha de Ingreso: septiembre-2009
Ubicación: Mi casa
Mensajes: 1.213
Antigüedad: 11 años, 2 meses
Puntos: 138
Respuesta: boton que se quede pulsado (AS3)

Cita:
Iniciado por Jime25 Ver Mensaje
hola!!
o sea que...
si presionás por ejemplo, el botón "inicio" aparezca el texto inicio y éste quede como botón activo??
no sé si entendí bien.
Saludos
en ese caso podés separar el botón en la instancia del texto inicio.
Espero que te sirva mi aporte,
de nuevo no sé si entendí bien..
__________________
Jime~

Mi blog.
Mi twitter.
  #4 (permalink)  
Antiguo 15/11/2009, 09:58
 
Fecha de Ingreso: abril-2008
Mensajes: 143
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: boton que se quede pulsado (AS3)

Haber me explico, tengo hecha una galeria de imagenes con categorias, solo me queda crear los botones de la galeria y al pinchar el boton de la categoria que se quede pulsado el boton de la categoria que pinche y los demas desmarcados.

En principio creo lo botones llamando auna clase boton la cual le doy el nombre de la categoria, asi saco tanto botones como categorias tenga...

El problema esta a la hora de hacer que al clickear el boton se quede pulsado y al pulsar otro ese anterior se desmarque y se active el nuevo...

Otro problema que tengo es que nose como indicarle al codigo principal la categoria que ha sido clickeada, tenia una variable donde indico el id de la categoria seleccionada pero nose como pasarle ese parametro desde la funcion de la clase boton al codigo principal...

os pego el codigo haber si alguien me ayuda!!

CODIGO PRINCIPAL

Código:
var i:Number;
var tb:MovieClip;
var vis:MovieClip;
var dirX:Number = 0;
var dirY:Number = 0;
var ldr:Loader;
var xmlLoader:URLLoader = new URLLoader();
var xmlData:XML = new XML();
var categoria:Number =1;
var foto; Loader;
var xButton:Number = 0;

xmlLoader.load(new URLRequest("imagenes.xml"));

xmlLoader.addEventListener(Event.COMPLETE, CargaDirecta);


function CargaDirecta(e:Event):void
		{
			xmlData = new XML(e.target.data);
			//pruebas
			trace(xmlData.categoria.(@id==categoria).foto.(@id=="1")[email protected]);
			trace(xmlData.categoria.(@id==categoria).foto.length());
			trace(xmlData.categoria.length());
			trace(xmlData.categoria.(@id==categoria).foto.(@id=="1")[email protected]);
			//pruebas			
			//saco tanto botones como categorias, enviandole el nombre de la categorita 
			for (i = 1; i <= xmlData.categoria.length(); i++)
			{
				// Instancializamos la clase ButtonStd
				var myButton:ButtonStd = new ButtonStd (xmlData.categoria.(@id==i)[email protected], i);
				// Ubicamos el nuevo ButtonStd
				// ( fijaros que no es _x y _y )
				myButton.x = 10+xButton;
				myButton.y = 10;
				xButton=+100;
				// Añadimos el ButtonStd al escenario
				// esto equivale a un attachMovie
				addChild(myButton);
			}
			//recorro en el XML la categoria seleccionada para mostrar sus thumbnails
			for (i = 1; i <= xmlData.categoria.(@id==categoria).foto.length(); i++)
			{
				tb = new MovieClip();
				tb.x = 75 * dirX + 5;
				tb.y = 75 * dirY + 50;
				addChild(tb);
				dirX++;
				
				if (dirX == 2)
				{
					dirX = 0;
					dirY++;
				}
				CargarThumbs();
			}
		}
		
function CargarThumbs():void
		{
			//cargo la imagen en el movie clip y lo muestro
			ldr = new Loader();
			ldr.load(new URLRequest(xmlData.categoria.(@id==categoria).foto.(@id==i)[email protected]));
			tb.addChild(ldr);
			Click(i);
		}
		
function Click(n:Number):void
{
	function alClick(e:MouseEvent):void
	{
		//Muestro la imagen en grande si pinchas en el thumbnail
		vis = new MovieClip();
		foto = new Loader();
		foto.load(new URLRequest(xmlData.categoria.(@id==categoria).foto.(@id==n)[email protected]));
		vis.x = 475 - (xmlData.categoria.(@id==categoria).foto.(@id==n)[email protected])/2;
		vis.y = 50;
		addChild(vis);
		vis.addChild(foto);
	}
	ldr.addEventListener(MouseEvent.CLICK, alClick);
}
CLASE BOTON:

Código:
package {

// Contiene la libreria para objectos MovieClip
import flash.display.MovieClip;
// Contiene la libreria para manipulacion de eventos del raton
import flash.events.MouseEvent;
// Contiene la libreria para manipulacion de textos
import flash.text.TextField;

// Definimos el nombre de la clase
// Debe empezar por mayusculas y tener
// el mismo nombre que el archivo que la contiene
public class ButtonStd extends MovieClip {
	
	var idBoton:Number;

	

// Método constructor que inicializa la clase
public function ButtonStd(_label:String, idBoton:Number) {
this._label = _label;
this.idBoton = idBoton;
this.setEvents();
}

// Metodo 'setter' para modificar la etiqueta del boton
public function set _label(_label:String):void {
// Usamos la función getChildByName cuando queremos buscar un
// elemento creado directamente en este caso y con nombre
//label_txt. Por otra parte decimos que dicho elemento es
// de tipo TextField mediante as [tipo]
this.label_txt = getChildByName("label_txt") as TextField;
label_txt.text = _label;
}

// Metodo para configurar los eventos asociados al boton
private function setEvents():void {

// asociamos un metodo al evento de pulsar el raton
addEventListener(MouseEvent.CLICK, click_handler);

// asociamos un metodo al evento de pasar por encima con el raton
addEventListener(MouseEvent.MOUSE_OVER, over_handler);

// asociamos un metodo al evento salir del boton con el raton
addEventListener(MouseEvent.MOUSE_OUT, out_handler);

}

private function click_handler(event:MouseEvent):void {
trace('click',this.label_txt.text, this.idBoton);
}

private function over_handler(event:MouseEvent):void {
this.label_txt.textColor = 0x000000;
}

private function out_handler(event:MouseEvent):void {
this.label_txt.textColor = 0x999999;
}

}

}
__________________
www.davidhs.es diseño Grafico y Web
  #5 (permalink)  
Antiguo 15/11/2009, 14:12
(Desactivado)
 
Fecha de Ingreso: noviembre-2009
Mensajes: 14
Antigüedad: 11 años
Puntos: 0
Respuesta: boton que se quede pulsado (AS3)

Lo que necesitas hacer para que el boton al precionar te quede en el estado activo, y no en reposo es la propiedad (ENABLED).
Suerte, puedes ver la propiedad (ENABLED) en F11 de flash.
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 01:06.