Comunidad de diseño web y desarrollo en internet online

as3 flash imagen dinamica para boton

Citar            
MensajeEscrito el 13 Ene 2011 07:10 pm
Hola:

Estoy pensando en hacer un botón prácticamente en su totalidad desde as3.

Partiendo de una clase declarada en la biblioteca del proyecto, puedo asignarle la "etiqueta" con algo similar a lo siguiente:

Código ActionScript :

o_boton.i_texto_boton.texto_boton.text="hola";


Como podría asignar una imagen al botón de forma que carge "externamente" una imagen y lo meta en el objeto correspondiente sin necesidad que esté en la biblioteca de Flash?. He intentado cosas tipo...

Código ActionScript :

function completeHandler(event:Event):void {
   addChild(event.target.content); // me carga la imagen al stage
   o_boton.i_mc_imagen=(event.target.content); // Esto me falla....
}


Pero no me funciona. Alguien podría decirme si se puede y como (o alguna orientacion)?

Muchas gracias

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 13 Ene 2011 07:20 pm
BuenAS:

Código ActionScript :

function completeHandler(event:Event):void {  
   o_boton.i_mc_imagen.addChild(DisplayObject(event.target.content));
} 

Un saludo.

Por Lukánicos

Claber

468 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 13 Ene 2011 08:42 pm
Hola:

Muchas gracias, funciona casi perfecto. Digo el casi porque cuando hago añado el objeto (o_boton), me carga la "nueva imagen" que le acabo de indicar y me vuelve a poner la que tenía en la clase de la biblioteca. No se queda la nueva que le indico (aunque la pone durante un instante).

Porqué puede ser?

Un saludo y muchas gracias

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 13 Ene 2011 09:14 pm
BuenAS:

No sé si te he entendido, si lo que quieres es quitar las imágenes que ya tiene el botón, haz algo así:

Código ActionScript :

function completeHandler(event:Event):void {   
   while (o_boton.i_mc_imagen.numChildren > 0) {
   o_boton.i_mc_imagen.removeChildAt(0);
   };
   o_boton.i_mc_imagen.addChild(DisplayObject(event.target.content)); 
}


El bucle while debería eliminar todo lo que tengas en o_boton.i_mc_imagen, y ahora sólo debería aparecer la imagen que has cargado y añadido con addChild().

Un saludo.

Por Lukánicos

Claber

468 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 13 Ene 2011 10:08 pm
Hola:

Efectivamente esa era mi intencion y creo que lo has entendido, pero sigue sin funcionar. Te comento primero el código que tengo y posteriormente intentaré detallar al máximo lo que me hace y lógicamente el error.

Codigo que tengo en estos momentos:

Código ActionScript :

var imagen:String = "imagen.jpg";
 
function CargarImagen() {
   var loader:Loader = new Loader();
   listadoListeners(loader.contentLoaderInfo);
   var peticion:URLRequest = new URLRequest(imagen);
   loader.load(peticion);
}
 
function listadoListeners(dispatcher:IEventDispatcher):void {
   dispatcher.addEventListener(Event.COMPLETE, completeHandler);
}
 
function completeHandler(event:Event):void {
   addChild(event.target.content);

        while (o_boton.i_mc_imagen.numChildren > 0) {
      trace ("entro");
                o_boton.i_mc_imagen.removeChildAt(0); 
         }; 
   o_boton.i_mc_imagen.addChild(DisplayObject(event.target.content));

}

CargarImagen();  //cargo la nueva imagen para el botón
main_menu.addChild(o_boton); //añado el nuevo botón con todos los cambios aplicados


Que sucede?
el botón o_boton es añadido al stage inicialmente con la imagen de la clase. Durante un instante se pone la "imagen.jpg" que le hemos indicado que ponga, pero acto seguido, vuelve otra vez la imagen que contiene la clase.

con el while funciona exactamente igual que sin él. Tambien indico que entro dentro del while 1 vez, por lo que antes si que tiene total lógica lo que comentabas, pero algo sigue mal.

Nota (para mi, un total principiante de flash as3), el "addChild(event.target.content);" si no pongo lo de abajo de él, si que se añade al stage, pero si está "o_boton.i_mc_imagen.addChild(DisplayObject(event.target.content));" no lo añade! para mi curioso! lo digo por si ayuda con el problema que existe

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 13 Ene 2011 10:19 pm
BuenAS:

Código ActionScript :

var imagen:String = "imagen.jpg"; 
function CargarImagen() {  
   var loader:Loader = new Loader();  
   listadoListeners(loader.contentLoaderInfo);  
   var peticion:URLRequest = new URLRequest(imagen);  
   loader.load(peticion);  
}  
   
function listadoListeners(dispatcher:IEventDispatcher):void {  
   dispatcher.addEventListener(Event.COMPLETE, completeHandler);  
}  
   
function completeHandler(event:Event):void {  
   o_boton.i_mc_imagen.addChild(DisplayObject(event.target.content));  
}  
  
CargarImagen();  //cargo la nueva imagen para el botón  
main_menu.addChild(o_boton); 

Supongo que el botón al que quieres añadir la imagen cargada es o_boton.i_mc_imagen, y que está vacío (o sea que no hay nada dentro que quieras borrar); si realmente quieres borrar el contenido añade el bucle while anterior:

Código ActionScript :

function completeHandler(event:Event):void { 
   while (o_boton.i_mc_imagen.numChildren > 0) {
      o_boton.i_mc_imagen.removeChildAt(0);  
   };  
   o_boton.i_mc_imagen.addChild(DisplayObject(event.target.content)); 
}



Un saludo.

Por Lukánicos

Claber

468 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 14 Ene 2011 10:20 am
Buenos días:

FALLO MIO!!!!! El codigo está perfecto!. Había cometido un error a la hora de crear el mc del botón, un fotograma clave no lo había nombrado bien, por eso cuando me llegaba a ese fotograma me "sobreescribia" con la imagen anterior.

Muchas gracias por tu ayuda. La verdad que así da gusto.

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox

 

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