Comunidad de diseño web y desarrollo en internet online

problema con menu

Citar            
MensajeEscrito el 03 Nov 2009 08:23 pm
Wenas gente, tengo un problemita con unos botones que encontre por ahi...
El tema es que no tiene explicacion de como usarlo, igual le pude hacer algunas modificaciones.

el codigo del primer frame es este:

Código :

// Inicial
Lbot = ["Clientes", "Contacto", "Productos", "Empresa"];
Lcolor = ["FF0000", "00AA00", "00AAAA", "AA00AA"];
rad1 = 80;
rad2 = 450;
centx = 400;
centy = 300;
posselx = 100;
possely = 100;
acel = 10;
//
ang = 360/Lbot.length;
angrad = ang/180*Math.PI;
trace(angrad);
for (n=0; n<Lbot.length; n++) {
   attachMovie("boton", "b"+n, n);
   _root["b"+n].texto = Lbot[n];
   _root["b"+n].num = n+1;
   _root["b"+n]._x = centx;
   _root["b"+n]._y = centy;
   _root["c"+n] = new Color(_root["b"+n].fondo);
   _root["c"+n].setRGB("0x"+Lcolor[n]);
   _root["b"+n].destx = centx+(Math.cos(angrad*n)*rad1);
   _root["b"+n].desty = centy+(Math.sin(angrad*n)*rad1);
   _root["b"+n].destscale = 100;
   _root["b"+n].onRollOver = function() {
      this.destscale = 200;
   };
   _root["b"+n].onRollOut = function() {
      this.destscale = 100;
   };
   _root["b"+n].onPress = function() {
      if (this.destx != 650) {
         this.destscale = 100;
         for (n=0; n<Lbot.length; n++) {
            _root["b"+n].destx = centx+(Math.cos(angrad*n)*rad2);
            _root["b"+n].desty = centy+(Math.sin(angrad*n)*rad2);
         }
         this.destx = 650;
         this.desty = 500;
         this.gotoAndStop(2);
      } else {
         for (n=0; n<Lbot.length; n++) {
            _root["b"+n].destx = centx+(Math.cos(angrad*n)*rad1);
            _root["b"+n].desty = centy+(Math.sin(angrad*n)*rad1);
         _root["b"+n].destscale = 100;
         }
         this.gotoAndStop(1);
      }
   };
}
idmove = setInterval(mover, 10);
function mover() {
   for (n=0; n<Lbot.length; n++) {
      dif = _root["b"+n].destx-_root["b"+n]._x;
      _root["b"+n]._x += (dif/acel);
      dif = _root["b"+n].desty-_root["b"+n]._y;
      _root["b"+n]._y += (dif/acel);
      dif = _root["b"+n].destscale-_root["b"+n]._yscale;
      _root["b"+n]._yscale += (dif/acel);
      _root["b"+n]._xscale = _root["b"+n]._yscale;
      _root["b"+n]._alpha = _root["b"+n]._yscale/2;
   }
}



lo que hace es generar y duplicar un mc que esta en la biblioteca, lo que no logro es darle funcion para que se conporte como boton. Es lo unico que no logo hacer.

Les dejo el fla para que lo vean si me quieren dar una mano.
rapidshare.com
megaupload.com

grax de antemano

Por nightpowa

22 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 03 Nov 2009 10:35 pm
No entendí muy bien tu pregunta, pero creo que lo que quieres es "hacer una acción al presionar cierto botón", lo que se me ocurre es que compruebes que boton se presiono justo despues de onPress, algo asi:

....
....
_root["b"+n].onPress = function() {
if (this._name == "b0") {
trace("El boton b0 se presiono");
Acciones....
}

Por MiactionScript

77 de clabLevel



 

chrome
Citar            
MensajeEscrito el 03 Nov 2009 10:50 pm
Hola nightpowa,

Yo tampoco entendí muy bien tu pregunta...

nightpowa escribió:

Lo que no logro es darle funcion para que se conporte como boton.

Lo que dices no tiene mucho sentido, ya que sí se está comportando como botón.

Te comenté el código para que veas en dónde debes poner lo que quieras:


Código ActionScript :

// Inicial 
Lbot = ["Clientes", "Contacto", "Productos", "Empresa"]; 
Lcolor = ["FF0000", "00AA00", "00AAAA", "AA00AA"]; 
rad1 = 80; 
rad2 = 450; 
centx = 400; 
centy = 300; 
posselx = 100; 
possely = 100; 
acel = 10; 
// 
ang = 360/Lbot.length; 
angrad = ang/180*Math.PI; 
trace(angrad); 
for (n=0; n<Lbot.length; n++) { 
   attachMovie("boton", "b"+n, n); 
   _root["b"+n].texto = Lbot[n]; 
   _root["b"+n].num = n+1; 
   _root["b"+n]._x = centx; 
   _root["b"+n]._y = centy; 
   _root["c"+n] = new Color(_root["b"+n].fondo); 
   _root["c"+n].setRGB("0x"+Lcolor[n]); 
   _root["b"+n].destx = centx+(Math.cos(angrad*n)*rad1); 
   _root["b"+n].desty = centy+(Math.sin(angrad*n)*rad1); 
   _root["b"+n].destscale = 100; 
   _root["b"+n].onRollOver = function() {  
      //Aquí se están declarando las acciones del boton, cuando le pasas el cursor 
      this.destscale = 200; 
   }; 
   _root["b"+n].onRollOut = function() { 
      //Aquí se están declarando las acciones del boton, cuando le quitas el cursor 
      this.destscale = 100; 
   }; 
   _root["b"+n].onPress = function() { 
      //Aquí se están declarando las acciones del boton, cuando lo presionas 
      if (this.destx != 650) { 
         this.destscale = 100; 
         for (n=0; n<Lbot.length; n++) { 
            _root["b"+n].destx = centx+(Math.cos(angrad*n)*rad2); 
            _root["b"+n].desty = centy+(Math.sin(angrad*n)*rad2); 
         } 
         this.destx = 650; 
         this.desty = 500; 
         this.gotoAndStop(2); 
      } else { 
         for (n=0; n<Lbot.length; n++) { 
            _root["b"+n].destx = centx+(Math.cos(angrad*n)*rad1); 
            _root["b"+n].desty = centy+(Math.sin(angrad*n)*rad1); 
         _root["b"+n].destscale = 100; 
         } 
         this.gotoAndStop(1); 
      } 
   }; 
} 
idmove = setInterval(mover, 10); 
function mover() { 
   for (n=0; n<Lbot.length; n++) { 
      dif = _root["b"+n].destx-_root["b"+n]._x; 
      _root["b"+n]._x += (dif/acel); 
      dif = _root["b"+n].desty-_root["b"+n]._y; 
      _root["b"+n]._y += (dif/acel); 
      dif = _root["b"+n].destscale-_root["b"+n]._yscale; 
      _root["b"+n]._yscale += (dif/acel); 
      _root["b"+n]._xscale = _root["b"+n]._yscale; 
      _root["b"+n]._alpha = _root["b"+n]._yscale/2; 
   } 
} 



Saludos.

Por violetisha

575 de clabLevel

1 tutorial
1 articulo

Genero:Femenino  

Mi silla en el estudio, México

opera
Citar            
MensajeEscrito el 03 Nov 2009 11:06 pm
gracias por la ayuda, pero si ese codigo me genera 4 botones, como aria para decir que el boton 1 entre a tal lado y el 2 a otro? o sea, lo que quiero saber es como se llama el boton que se genera automaticamente.

gracias de nuevo por la ayuda

Por nightpowa

22 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 03 Nov 2009 11:17 pm
asi como te dije, justo despues de la funcion onPress hacer IF.

_root["b"+n].onPress = function() {



if (this._name == "b0") {
gotoAndPlay("Framequequiera")
}
if (this._name == "b1") {
gotoAndPlay("Framequequiera")
}
if (this._name == "b2") {
gotoAndPlay("Framequequiera")
}
......... saludos

Por MiactionScript

77 de clabLevel



 

chrome
Citar            
MensajeEscrito el 03 Nov 2009 11:21 pm
No hay de qué nightpowa,

Muy bien, en la parte de

Código ActionScript :

for (n=0; n<Lbot.length; n++) {  // Estamos estableciendo limites, es decir que: para n igual a 0 y n menor a la longitud del arreglo Lbot, n aumente en 1


Después, como verás, los botones se llaman así: _root["b"+n] lo quiere decir, es que va a crear tantos botones como los límites que establecimos en el for. En este caso: n=0, n=1, n=2, n=3 y ya, porque debemos cumplir el n<Lbot.length y tu arreglo tiene 4 botones, es decir 3<4 :).

Una vez teniendo esos datos, podemos conlcuir que los botones se llaman: _root.b0 , _root.b1 , _root.b2 y _root.b3

Espero te haya servido1 ;)

Saludos.

Por violetisha

575 de clabLevel

1 tutorial
1 articulo

Genero:Femenino  

Mi silla en el estudio, México

opera
Citar            
MensajeEscrito el 03 Nov 2009 11:23 pm
Ush, me ganaron, eso me pasa por tardar tanto escribiendo XD

Jajaja!

Saludos MiactionScript! ^^

Por violetisha

575 de clabLevel

1 tutorial
1 articulo

Genero:Femenino  

Mi silla en el estudio, México

opera
Citar            
MensajeEscrito el 04 Nov 2009 11:51 am
son las 2 personas mas grandes del mundo!! les voy a lebantar un monumento en el patio de mi casa XD

gracias por la ayuda. Les debo mucho

Por nightpowa

22 de clabLevel



Genero:Masculino  

firefox

 

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