Comunidad de diseño web y desarrollo en internet online

Menú con efecto de easing para novatos ¡Ayuda!

Citar            
MensajeEscrito el 27 Jun 2009 02:30 am
Antes que nada muchas gracias a todos los que me han ayudado con dudas anteriores :)...Pero que creen :P una nueva inquietud me invade :lol:

Estoy haciendo una pagina la cual me piden que tenga un menu como en el siguiente tutorial:
http://www.cristalab.com/vertutorial.php?id=57

Ingenuamente crei que podria hacerlo...¡Error! :lol: llevo un par de horas y mi menu ni siquiera se mueve :cry:

El problema me imagino es que el tutorial explica como hacerlo con 6 botones, yo necesito un menu con 15 botones, crei que con aumentar el numero codigos con sus respectivos nombres quedaria o al menos me daria un rumbo si salia mal, pero ni siquiera se mueve :cry: , aparte otra duda es que en el tutorial el ejemplo esta para que se ocupe todo el escenario, ¿pero y si solo tiene que estar en un parte del escenario, como le hago?



y este es el codigo que seguramente erroneamente cambie :lol:

Este codigo se encuentra en el frame 35

Código :

//Declaramos variables
// Variable para saber la posición _x del mouse
var xposMouse:Number = _root._xmouse;
// Variable para asignar la velocidad máxima del movimiento de los MC
var velMax:Number = 6;
// Velocidad mínima de los MC
var velMin:Number = 0;
// Variable para asignar el punto medio de la escena
var xMitadEscena:Number = 324.5;
// La siguiente var, sirve para determinar cuando el mc está al
//límite _x de la pantalla, en este caso es de 600 pixels
var anchoEscena:Number = 1083;
// A esta le asignaremos el ancho del mc, para saber cuando a desaparecido del
// todo de la escena y establecer las separaciones entre mcs
var anchoMC:Number = 59.1;
//variable factor, que en realidad es la función matemática
// f(x) = ax + b
var factor:Number = xposMouse*(velMax-velMin)/xMitadEscena+2*velMin-velMax;
//No queremos que factor pase de 6, o de  -6
if (factor>velMax) {
   factor = velMax;
} else if (factor<-velMax) {
   factor = -velMax;
}
//Si el mc se ha salido por la derecha, ponerlo
//en la izquierda o viceversa.
//para sofas y sillones
if (homemc._x>anchoEscena) {
   this.rojo_mc._x = -anchoMC;
}
if (homemc._x<-anchoMC) {
   this.rojo_mc._x = anchoEscena;
}
//para butacas y silletas
if (butamc._x>anchoEscena) {
   this.amarillo_mc._x = -anchoMC;
}
if (butamc._x<-anchoMC) {
   this.amarillo_mc._x = anchoEscena;
}
//sillas
if (sillamc._x>anchoEscena) {
   this.verde_mc._x = -anchoMC;
}
if (sillamc._x<-anchoMC) {
   this.verde_mc._x = anchoEscena;
}
//bancas y taburetes
if (bancamc._x>anchoEscena) {
   this.cian_mc._x = -anchoMC;
}
if (bancamc._x<-anchoMC) {
   this.cian_mc._x = anchoEscena;
}
//consolas
if (consomc._x>anchoEscena) {
   this.azul_mc._x = -anchoMC;
}
if (consomc._x<-anchoMC) {
   this.azul_mc._x = anchoEscena;
}
//mesas de comedor
if (mesa2mc._x>anchoEscena) {
   this.espacio_mc._x = -anchoMC;
}
if (mesa2mc._x<-anchoMC) {
   this.espacio_mc._x = anchoEscena;
}
//mesas de centro
if (mesa3mc._x>anchoEscena) {
   this.espacio_mc._x = -anchoMC;
}
if (mesa3mc._x<-anchoMC) {
   this.espacio_mc._x = anchoEscena;
}
//comodas y bufeteros
if (comodamc._x>anchoEscena) {
   this.espacio_mc._x = -anchoMC;
}
if (comodamc._x<-anchoMC) {
   this.espacio_mc._x = anchoEscena;
}
//modulares
if (modmc._x>anchoEscena) {
   this.espacio_mc._x = -anchoMC;
}
if (modmc._x<-anchoMC) {
   this.espacio_mc._x = anchoEscena;
}
//libreros
if (libremc._x>anchoEscena) {
   this.espacio_mc._x = -anchoMC;
}
if (libremc._x<-anchoMC) {
   this.espacio_mc._x = anchoEscena;
}
//camas buros y cabeceras
if (camamc._x>anchoEscena) {
   this.espacio_mc._x = -anchoMC;
}
if (camamc._x<-anchoMC) {
   this.espacio_mc._x = anchoEscena;
}
//cojines
if (cojimc._x>anchoEscena) {
   this.espacio_mc._x = -anchoMC;
}
if (cojimc._x<-anchoMC) {
   this.espacio_mc._x = anchoEscena;
}
//cortinas
if (cortimc._x>anchoEscena) {
   this.espacio_mc._x = -anchoMC;
}
if (cortimc._x<-anchoMC) {
   this.espacio_mc._x = anchoEscena;
}
//lamparas
if (lampmc._x>anchoEscena) {
   this.espacio_mc._x = -anchoMC;
}
if (lampmc._x<-anchoMC) {
   this.espacio_mc._x = anchoEscena;
}
//tapetes
if (tapmc._x>anchoEscena) {
   this.espacio_mc._x = -anchoMC;
}
if (tapmc._x<-anchoMC) {
   this.espacio_mc._x = anchoEscena;
}
//outdoor
if (outmc._x>anchoEscena) {
   this.espacio_mc._x = -anchoMC;
}
if (outmc._x<-anchoMC) {
   this.espacio_mc._x = anchoEscena;
}
// Y ahora Al ataqueeeee!!! pasamos al frame 2
play();


Este codigo se encuentra en el frame 36

Código :

//Si la posición del mouse está más alla de la mitad derecha +30 pixels,
//mover hacia la izquierda (a la velocidad del factor)
if (xposMouse>(xMitadEscena)+12.5) {
   this.homemc._x -= factor;
   this.butamc._x -= factor;
   this.sillamc._x -= factor;
   this.bancamc._x -= factor;
   this.consomc._x -= factor;
   this.mesa2mc._x -= factor;
   this.mesa3mc._x -= factor;
   this.comodamc._x -= factor;
   this.modmc._x -= factor;
   this.libremc._x -= factor;
   this.camamc._x -= factor;
   this.cojimc._x -= factor;
   this.cortimc._x -= factor;
   this.lampmc._x -= factor;
   this.tapmc._x -= factor;
   this.outmc._x -= factor;
}
//Si lo está a menos de 30 pixels de la mitad izquierda,
//mover a la derecha (a la velocidad del factor)
if (xposMouse<(xMitadEscena)-12.5) {
this.homemc._x -= factor;
   this.butamc._x -= factor;
   this.sillamc._x -= factor;
   this.bancamc._x -= factor;
   this.consomc._x -= factor;
   this.mesa2mc._x -= factor;
   this.mesa3mc._x -= factor;
   this.comodamc._x -= factor;
   this.modmc._x -= factor;
   this.libremc._x -= factor;
   this.camamc._x -= factor;
   this.cojimc._x -= factor;
   this.cortimc._x -= factor;
   this.lampmc._x -= factor;
   this.tapmc._x -= factor;
   this.outmc._x -= factor;
}


Espero que mi novates no los haga enojar y me puedan ayudar ^^

Por BERRY24

10 de clabLevel



 

MEXICO

firefox
Citar            
MensajeEscrito el 27 Jun 2009 01:04 pm
Si estás apurado, éta es una solución rápida y fácil.

todos os botons deben estar dentro de un mc, que puede estar enmascarado o no.
dicho mc tiene un enterFrame como éste:

Código :

onClipEvent(eneterFrame){
_x+=(_root._xmouse - _x)/3
};


fijate de poner + o - según la direción que quieres que corra el menu. el número luego del / es la velocidad.
Espero que t sirva.[/code]

Por candoti

46 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 29 Jun 2009 03:01 pm
Hola :) gracias por responder, ya lo hize asi, cuando publico como swf me marca un error me dice que los "Clip events" son permitidos solo en movie clips, sera que me pone eso porque son botones? o porque crees que sea? espero me puedas ayudar, ah y muchas gracias por responder ^^

Por BERRY24

10 de clabLevel



 

MEXICO

firefox
Citar            
MensajeEscrito el 29 Jun 2009 03:20 pm
Ayuda por favor :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry:

Por BERRY24

10 de clabLevel



 

MEXICO

firefox
Citar            
MensajeEscrito el 29 Jun 2009 03:49 pm
Alguien podria enviarme algun link de como hacer esto paso por paso por favor, busco y busco pero no esncuentro...pleaseeee

Por BERRY24

10 de clabLevel



 

MEXICO

firefox
Citar            
MensajeEscrito el 29 Jun 2009 09:52 pm
Si, los enterFrame (de clipEvent) van solo en los mc. Recuerda que todos tus botones, deben estar dentro de un Clip de Película, el cual tendrá el código q deje mas arriba.
Saudos.

Por candoti

46 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 29 Jun 2009 10:05 pm
Muchas gracias por auxiliarme Candoti :) , pero todavia no me sale :oops: perdon podrias seguirme auxiliando :oops: ...

Ya puse todos los botones dentro de un mc y le puse el codigo que me hiziste el favor de enviar y me pone esto:
"Statement must appear within on/onClipEvent handler

Por BERRY24

10 de clabLevel



 

MEXICO

firefox
Citar            
MensajeEscrito el 29 Jun 2009 10:08 pm
!!!! mi culpa. escribi mal enterFrame.... puse, enenterFrame.

asi va:

onClipEvent(enterFrame){
_x+=(_root._xmouse - _x)/3
};

Por candoti

46 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 29 Jun 2009 10:10 pm
Ok, ya me salio lo del codigo, pero lo que necesito es que el menu se mueva de deracha a izquierda dependiendo del adonde vaya el cursor, no que el menu siga detras del cursor, podrias ayudarme por favor? :oops:

Por BERRY24

10 de clabLevel



 

MEXICO

firefox
Citar            
MensajeEscrito el 29 Jun 2009 10:14 pm
onClipEvent(enterFrame){
_x-=(_root._xmouse + _x)/3
}

cambian los signos de suma y resta. fijate q talvez tengas que sumar o restar para que se ajuste al tamaño de tu película. t recuerdo q esta no es la forma ortodoxa de hacer el trabajo, simplemente una salida rápida. saludos.

Por candoti

46 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 29 Jun 2009 10:19 pm
Sip, el problema esque son 15 botones del menu y dado que con esa opcion el menu va siguiendo el cursor no se pude seleccionar mas haya de la primera opcion, ademas de que cuando se va a la derecha todo el demas menu se va a la derecha quedando solo a la vista la primera opcion :oops:

Por BERRY24

10 de clabLevel



 

MEXICO

firefox
Citar            
MensajeEscrito el 30 Jun 2009 01:55 am
Alguien que me auxile por favoooooooor :cry:

Por BERRY24

10 de clabLevel



 

MEXICO

firefox
Citar            
MensajeEscrito el 13 Ago 2009 09:41 pm
SI mi estimado amigo, entonces cual es la solucion ortodoxa?.
De antemano la solucion que planteaste funciona, la acabo de probar y me saco de apuros.
sin embargo tuve que sacrificar los efectos de on, osea que el boton se iluminara cuando el mouse pasa por encima.
Mi problema es similar, el turorial es bueno, buenisimo, pero en la mayoria de los casos a mi entender, requerimos espacios de trabajo o escenarios mas grandes donde los elementos no caigan todos en el escenario ahi va mi primera pregunta.

1. ¿Es necesario que TODOS los elementos esten dentro del escenario?

tengo varios mis elementos fuera de el, y cuando publico la pelicula solo me aparece el que esta dentro de el, y todos los demas estan amontonados, los movimientos y todo funciona a la perfeccion, pero solo veo el elemento dentro del escenario.
Como te digo, tu sugerencia me fuinciono a la perfeccion, pero me gustaria saber cual es el metodo ortodoxo y coprrecto para arreglar esta situacion, con el fin de aprender.
les estaria muy agradecido amigos del foro
abrazos

Por onelovetks

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 15 Sep 2009 12:34 am
hola...
a mi me anduvo sin problemas, yo le agregué más clips y solo los agrgué en los scripts, solo tenés que verificar que en el último y en el primero estén correctamente colocados los clips que se mueven por detrás, o sea, los clips ingresan a la escena en relación al que le sigue por detrás, si agregamos clips nuevos, esta relación se modifica...

ahora yo tengo una duda, como hago para que al clickear sobre uno la animación siga hasta que este llegue a una posición determinada, es decir, que se mueva hasta que esté en una posición del escenario específica...

gracias


dejo el link de cómo me quedó la pag que yo hice

www.room302.com.ar

Por lestatnislao

1 de clabLevel



 

firefox

 

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