Ver Mensaje Individual
  #15 (permalink)  
Antiguo 04/06/2010, 13:48
Avatar de mortiprogramador
mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 8 meses
Puntos: 214
Respuesta: Realizar Multimedia en AS3

Cita:
Iniciado por ceaped Ver Mensaje
Hola mortiprogramador.

Tu lo hiciste con componente "Button", pero yo lo deseo hacer sin componentes, yo deseo diseñar mi propio botón y instanciarlo digamos 20 veces de la biblioteca, osea hacer tu mismo proceso pero sin componente.

Ya hice tu tutorial y no logro que me de con un botón normal.

Gracias por tu ayuda
Hola
Bueno, pues disculpa, no te había entendido bien

En efecto, mi ejemplo va con botones de la librería, para que funcione
con botones propios (y en tu caso que son instancias de una clase (boton_0))
entonces basta con lo siguiente:

archivo test.fla
0. Entrar a mc_0, luego entrar a btn_0 y agregar un campo text sobre el botón (que simulara el label del boton común) y le damos de nombre de instancia label
Listo, al hacer esto, los demás botones heredaran de esta su madre!

Hasta aquí todo ok, si compilamos en este momento
nos dira que estamos entrando a una propiedad label que no puede ser
accedida, porque? pues porque en este momento tu hiciste movieclips
personalizados, y le diste que sean de tipo Button, pero pues no tienes
la propiedad label, solución? ponlos de tipo movieclip ( a todos los btn_n, pues este proceso no lo heredan cuando cambias el tipo en el panel de propiedades)

Ahora necesitamos modificar un poco el archivo as, poniendole .text a todos los labels que agregamos a cada botón y agregando algo que comento al final

archivo test.as
Código actionscript:
Ver original
  1. //Seteo de objetos
  2. // txt_0.text = "HOLA"; //false, porque? porque esta DENTRO de mc_0
  3. mc_0.txt_0.text="txt MC";//true
  4. txt_1.text="txt 1";
  5. mc_0.btn_0.label.text="btn MC";
  6. btn_1.label.text="Boton 1";
  7. btn_2.label.text="Boton 2";
  8. btn_3.label.text="Boton 3";
  9. mc_0.btn_0.buttonMode = true;
  10. mc_0.btn_0.mouseChildren = false;
  11. //Agregar listeners a botones
  12. mc_0.btn_0.addEventListener(MouseEvent.CLICK, cualdetodos);
  13. btn_1.addEventListener(MouseEvent.CLICK, cualdetodos);
  14. btn_2.addEventListener(MouseEvent.CLICK, cualdetodos);
  15. btn_3.addEventListener(MouseEvent.CLICK, cualdetodos);
  16.  
  17. function cualdetodos(e:MouseEvent):void {
  18.     //e nos traera información interesante sobre el botón presionado, por ej
  19.     //se puede usar también target, pero este suele devolver el destinatario y no el remitente
  20.     //ej: target txt_0 currentTarget btn_0
  21.     trace(e.currentTarget.label);
  22.     if (e.currentTarget.label.text=='btn MC') {
  23.         mc_0.txt_0.text="Somos parientes";
  24.     } else {
  25.         txt_1.text = "Hoy soy pariente de " + (e.currentTarget.label.text);
  26.     }
  27. }

Notese estas 2 líneas
Código actionscript:
Ver original
  1. mc_0.btn_0.buttonMode = true;
  2. mc_0.btn_0.mouseChildren = false;
que hace esto? (especificamente solo con el botón del mc_0 para que se note que no esta habilitado en los otros botones)
la primera propiedad hace que salga el "indice acusador con la mano correspondiente" sobre el movieclip donde estamos ubicados
la segunda hace que los objetos que sean hijos del movieclip
también hereden al indice acusador
si pusieran esto
Código actionscript:
Ver original
  1. mc_0.btn_0.buttonMode = true;
  2. mc_0.btn_0.mouseChildren = true;
el indice acusador solo saldria por partes del botón donde
no lo este cubriendo el campo de texto

Pruebas y debe funcionar
Te envío los archivos sin embargo a tu mail
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com

Última edición por mortiprogramador; 10/06/2010 a las 00:22 Razón: edit_comment()