Comunidad de diseño web y desarrollo en internet online

Menú Brujula

Citar            
MensajeEscrito el 19 Jul 2007 09:00 pm
Hola colegas y amigos!

Quiciera saber si alguien me puede ayudar con el siguiente asunto...

Estoy haciendo un menú que tiene los botones al rededor con una flecha en el centro, imaginense una especie de brujula. Mi deseo es que si yo me paro sobre cierto boton (rollOver) la flecha que esta en el medio gire lentamente hasta señalar dicho boton.

Si alguien me puede ayudar con esto se lo agradeceria en el alma. :wink:

Por osonous

4 de clabLevel



Genero:Masculino  

Colombia

msie7
Citar            
MensajeEscrito el 19 Jul 2007 09:11 pm
Hola osonous, algo que se me ocurre que podria servirte podria ser lo sigueinte: Supongamos que para que la flecha señale el boton la flecha necesita tener una rotacion (_rotation) de 100, entonces podrias hacer algo como esto:

Código :


function flecha(var rotar:Number){ 
    flecha._rotation += (rotar - flecha._rotation)/8;
}



donde rotar es el numero necesario para que la flecha "señale" al boton

entonces tendias que pasarlo como parametro desde el boton o desde donde quieras con:

flecha(100);

eso es solo para el caso del boton q necesite 100 como parametro
Espero q el codigo funcione aunque creo que si lo hice aca rapidito porq ya me tnego que ir


Saludos!

Por Benutti

188 de clabLevel

1 tutorial

 

NutT

msie
Citar            
MensajeEscrito el 20 Jul 2007 08:53 am
Prueba este código o adáptalo a tu gusto.
Dada una serie de botones (o MC´s) se crea un Array con sus nombres de instancia y otro con sus ángulos respectivos.
Otro MC instanciado como rotor hace de indicador o flecha.
Luego en cada botón ponemos sus acciones.
Podemos seleccionar pulsando el botón ( la flecha ira hacia allí) o:
Moviendo la flecha (rotor) y, al soltarla, esta se irá al botón más cercano y ejecutará sus acciones.

Código :

rotorM = [327,257,219,165,143,126,87,60]; //array de angulos
botonM = [bt1,bt2,bt3,bt4,bt5,bt6,bt7,unbt]; //array de instancias MC´s o botones. 
rotor.onEnterFrame =function(){
   if(rotoractivo){
      rotor._rotation=Math.atan2((_ymouse-rotor._y),(_xmouse-rotor._x))*180/Math.PI;
   }
}
rotor.onPress  = function(){rotoractivo= true;}
rotor.onRelease = rotor.onReleaseOutside = function(){
   rotoractivo= false; cerca2=360;
   for (rt=0 ; rt<rotorM.length ; rt++){
      cerca = Math.abs((rotor._rotation+360)%360-rotorM[rt]);
      if(cerca < cerca2){rota = rt; cerca2 = cerca;}
   }
   rotar_a(rota);
   botonM[rota].onPress();
}
function rotar_a(r){rotor._rotation =rotorM[r];}

//botonera:
bt1.onPress = function(){
   rotar_a(0);
   trace ("pulsando el "+this);
   //aquí la acciones de bt1, igual para cada botón);
}
bt2.onPress = function(){rotar_a(1); trace ("pulsando el "+this)}
bt3.onPress = function(){rotar_a(2); trace ("pulsando el "+this)}
bt4.onPress = function(){rotar_a(3); trace ("pulsando el "+this)}
bt5.onPress = function(){rotar_a(4); trace ("pulsando el "+this)}
bt6.onPress = function(){rotar_a(5); trace ("pulsando el "+this)}
bt7.onPress = function(){rotar_a(6); trace ("pulsando el "+this)}
unbt.onPress = function(){rotar_a(7); trace ("pulsando el "+this)}

Este es el ejemplo:

Y este el FLA por si lo necesitas:
descargar FLA

Por Teseo

SWAT Team

1780 de clabLevel

14 tutoriales

Genero:Masculino   SWAT

firefox
Citar            
MensajeEscrito el 20 Jul 2007 09:55 pm
mmm me parece que lo que han posteado y este ejemplo te pueden ayudar...éxitos!!!

Por Rudy3001

69 de clabLevel



 

Por los grandes paisajes de Guatemala

firefox
Citar            
MensajeEscrito el 28 Jul 2007 06:08 pm
GRACIAS... :wink:
VOY A VER COMO ME FUNCIONA... LUEGO LES CUENTO!

Por osonous

4 de clabLevel



Genero:Masculino  

Colombia

msie7
Citar            
MensajeEscrito el 28 Jul 2007 09:03 pm
Me gusto el que hizo teseo..pero...

Código :

 cerca = Math.abs((rotor._rotation+360)%360-rotorM[rt]);


No entiendo esa parte..
¿Que hace..Math.abs?

Por JaLeRu

Claber

1913 de clabLevel

7 tutoriales

Genero:Masculino  

Existo

firefox
Citar            
MensajeEscrito el 29 Jul 2007 02:08 am

jaleru escribió:

¿Que hace..Math.abs?

calcula y devuelve un valor absoluto
en el sig codigo Math.abs() devuelve el valor absoluto de un número y no afecta al valor del parámetro x (numero):

Código :

var numero:Number = -10; 
var numeroAbsoluto:Number = Math.abs(numero);
trace(numero); // salida: -10
trace(numeroAbsoluto); // salida: 10

Por penHolder

Claber

4661 de clabLevel

39 tutoriales
2 articulos

Genero:Masculino   Premio_Secretos

| mdz |

firefox

 

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