Comunidad de diseño web y desarrollo en internet online

Limitar movimiento de menu dinámico

Citar            
MensajeEscrito el 26 Feb 2008 04:45 pm
Hola a todos!

Estoy experimentando con un menú dinámico que encontré en un tutorial (este es el link: http://www.washeebo.com/sargento/02_flsh/0213/0213.php). Mi pregunta es: ¿sabe alguien cómo conseguir que el menú se limite al escenario y, cuando salga el ratón de éste, el menú en cuestión se pare?

Muchas gracias!

Por Wataru

15 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 26 Feb 2008 05:39 pm
En cuanto al ratón, no hay manera de saber si está fuera del escenario. Lo único que puedes saber es su última posición. Ahora bien, para el menú puedes ponerle límites con condicionales. Le dices que si si posición x (mc._x) es mayor que lo que tú quieras se mueva a esa posición:

Código :

if(mc._x>400){
mc._x=400
}


Así con los cuatro límites.

Por mcapu

181 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 27 Feb 2008 08:33 am
Hola mcapu,

Gracias por la respuesta, voy a probarlo ahora mismo y te digo.

Un saludo!

Por Wataru

15 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 27 Feb 2008 10:32 am
Hola de nuevo mcapu,

He probado lo que me dijiste y no me funciona. No sé si lo hago mal, pero los condicionantes no afectan para nada al MC q me interesa (botones). Dejo el script a ver si alguien puede solucionarlo.

_root.attachMovie("botones","botones",10);

w = 420;
h = 220;

onEnterFrame = function() {
// Posición destino
destx = w - _xmouse;
desty = h - _ymouse;
// Incrementos de posición
incrx = (destx - botones._x)/10;
incry = (desty - botones._y)/10;
botones._x += incrx;
botones._y += incry;
}

if(botones._x>420){
botones._w=420
}
if(botones._y>220){
botones._y=220
}

if(botones._x>-420){
botones._x=-420
}
if(botones._y>-220){
botones._y=-220
}

Por Wataru

15 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 27 Feb 2008 02:44 pm
Buenas de nuevo, Wataro. Prueba esto, debería funcionar:

Código :

_root.attachMovie("botones","botones",10);

w = Stage.width;
h = Stage.height;

onEnterFrame = function() {
// Posición destino
destx = w - _xmouse;
desty = h - _ymouse;
// Incrementos de posición
incrx = (destx - botones._x)/10;
incry = (desty - botones._y)/10;
botones._x += incrx;
botones._y += incry;


if(botones._x>(w-botones._width/2)){
botones._x=w-botones._width/2
}
if(botones._y>(h-botones._height/2)){
botones._y=h-botones._height/2
}

if(botones._x<botones._width/2){
botones._x=botones._width/2
}
if(botones._y<botones._height/2){
botones._y=botones._height/2
}

}


El problema es que tenías puestos los condicionales fuera del EnterFrame, por eso solamente se ejecutaban al principio de la película una vez.
Espero que funcione. :wink:

Por mcapu

181 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 28 Feb 2008 07:42 am
Hey mcapu!

Muchas gracias! Funciona a la perfección! Soy un despiste la verdad, mira que dejar los condicionales fuera! Demasiadas horas delante de la pantalla, jeje, al final ya no ves nada!

Gracias de nuevo!

Un saludo

Por Wataru

15 de clabLevel



Genero:Masculino  

firefox

 

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