Comunidad de diseño web y desarrollo en internet online

Botones en AS3

Citar            
MensajeEscrito el 08 Ago 2009 07:10 pm
hola a todos!
necesito hacer varios botones en AS3.

probé lo siguiente:

mi_boton1.addEventListener(MouseEvent.CLICK,webClick);
function webClick (e:MouseEvent) {
var link:String = "mailto:[email protected]";
var request:URLRequest = new URLRequest(link);
navigateToURL(request);
}

pero al momento de duplicar el código cambiando el nombre del movieclip para darle otra link a otro botón, Flash me dice que el evento está duplicado.

Cómo hago entonces, para darle distintas URL a cada botón?
Muchas gracias a quien pueda ayudarme!

Por ludmila

16 de clabLevel



 

msie7
Citar            
MensajeEscrito el 08 Ago 2009 08:46 pm
hola , eso lo puede resolver creando un array que alamcene las urls , o usar xml para crear los botones, creo que esa ultima es una de las mas optimas , pero te expondre la primera , suponiendo que ya tienes los botones en tu escenario con nombres de instancia mi_boton0, mi_boton1.. etc, como tantos botones tengas tendras que llenar el array que contendra las urls , en este caso solo usare 3, el objetivo es enter el ejemplo, bueno el codigo seria el siguiente

Código ActionScript :

//este array almacena las urls
var urlArray:Array = new Array("http://www.cristalab.com","http://www.google.com","http://www.youtube.com");
var objArray:Array = new Array();// y este otro los botones

for(var i:int = 0 ; i < urlArray.length; i++) 
{
   objArray.push(getChildByName("mi_boton" + i));//llenas el array con los botones 
   objArray[i].url = urlArray[i];//creas una propiedad url que sera a cada uno de las urls del urlArray
   objArray[i].addEventListener(MouseEvent.CLICK, clickWeb);//agregar el listener
}

function clickWeb(e:MouseEvent):void
{
   var req:URLRequest = new URLRequest(e.target.url);//y le pasas la url, creada anteriormente en el loop
   navigateToURL(req);
}


y eso es todo , espero te funcione , seguramente habra muchas formas de solucionar esto , aqui te dejo la otra forma , en la cual se utiliza XML es casi lo mismo, solo que supera por mucho lo dinamico al ejemplo que yo te puse :P

Jonathan

Por maneuver

243 de clabLevel



Genero:Masculino  

Mexico City

firefox
Citar            
MensajeEscrito el 11 Sep 2009 05:01 pm
yo tengo el mismo problema, lo que no se es como decirle que en lugar de ir a un URL vaya a una escena.

Por vdeleon

5 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 12 Sep 2009 04:34 am
hola :
Otra forma que he aprendido para controlar varios botones es usar una sentencia switch dentro de la funcion del evento.un ejemplo

Código ActionScript :

// n = numeros de botones .
boton_n.addEventListener(MouseEvent.CLICK,FClickMouse);

function fClickMouse(ev:Event):void{

         switch(ev.currentTarget.name){
                                                     case boton_1:
                                                                       //lo que quieras que haga.
                                                      break;
                                                       case boton_2:
                                                                       //lo que quieras que haga este otro.
                                                       break;
                                                        case boton_n:
                                                                       //asi todos.
                                                       break;
                                                         default:
                                                                    // esta es la instruccion por "defecto". esta se ejecutara si ninguna de las demas  se cumplieron
                                                         break;

                                                     }



}





Espero que sea util a mi me sirvio de mucho para poder manejar diferentes botones con diferentes nesecidades cada uno . saludos

Por maximil13

70 de clabLevel



Genero:Masculino  

Programador, estudiante de sistemas.

firefox
Citar            
MensajeEscrito el 26 May 2010 02:02 am
Hola a todos

Soy nuevo en esto del AS3 y navegando por la net, me econtre con este cogido interesante, lo siguiente va en el movie.fla

Código :

var images:Array = [
   {image1:"1.jpg", image2:"1_over.jpg",  x:20,   y:20},
   {image1:"2.jpg", image2:"2_over.jpg",  x:140,   y:20},
   {image1:"3.jpg", image2:"3_over.jpg",  x:260,   y:20}
];

for each(var img:Object in images)
{
   var image:Image = new Image(img.image1, img.image2);
   image.x = img.x;
   image.y = img.y;   
   addChild(image);
}


y luego creas un archivo ActionScript y lo guardas con el nombre Image.as y ahi creas el siguiente codigo

Código :

package
{
   import flash.display.MovieClip;
   import flash.events.MouseEvent;
   import flash.display.Loader;
   import flash.net.URLRequest;
   
   public class Image extends MovieClip
   {
      public var imageLoaderIdle:Loader;
      public var imageLoaderOver:Loader;
      
      function Image(idleImage:String, overImage:String)
      {         
         imageLoaderIdle = new Loader();
         imageLoaderIdle.load(new URLRequest(idleImage));         
         
         imageLoaderOver = new Loader();
         imageLoaderOver.load(new URLRequest(overImage));
         imageLoaderOver.alpha = 0;
         
         addChild(imageLoaderIdle);
         addChild(imageLoaderOver);
         
         addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler);
         addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);
      }
      
      private function mouseOverHandler(evt:MouseEvent):void
      {
         imageLoaderIdle.alpha = 0;
         imageLoaderOver.alpha = 1.0;
      }
   
      private function mouseOutHandler(evt:MouseEvent):void
      {
         imageLoaderIdle.alpha = 1.0;
         imageLoaderOver.alpha = 0;
      }
      
   }
}


y Funciona de maravilla, el hecho es que me gustaria ponerle un link diferente a cada imagen, espero que alguien me pueda ayudar. Gracias

Por berner

0 de clabLevel



 

chrome

 

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