Comunidad de diseño web y desarrollo en internet online

agregando Botones funka mal en tuto Menu easing para novatos

Citar            
MensajeEscrito el 10 Feb 2006 12:10 am
Hola tengo un problema con el tuto deMenu con efecto de Easing para Novatos de Sisco, que al agregarle mas botones, algunos se ven unos sobre otros, al usar solo 5 como en el tuto no presenta problemas, el codigo que use esta aca...el AS por boton esta igual

primer frame

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 = 300;
// 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 = 600;
// 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 = 150;
//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 a4tech
if (a4tech._x>anchoEscena) {
   this.a4tech._x = -anchoMC;
}
if (a4tech._x<-anchoMC) {
   this.a4tech._x = anchoEscena;
}

//para el amd
if (amd._x>anchoEscena) {
   this.amd._x = -anchoMC;
}
if (amd._x<-anchoMC) {
   this.amd._x = anchoEscena;
}

//aoc
if (aoc._x>anchoEscena) {
   this.aoc._x = -anchoMC;
}
if (aoc._x<-anchoMC) {
   this.aoc._x = anchoEscena;
}

//aopen
if (aopen._x>anchoEscena) {
   this.aopen._x = -anchoMC;
}
if (aopen._x<-anchoMC) {
   this.aopen._x = anchoEscena;
}

//apc
if (apc._x>anchoEscena) {
   this.apc._x = -anchoMC;
}
if (apc._x<-anchoMC) {
   this.apc._x = anchoEscena;
}

//asrock
if (asrock._x>anchoEscena) {
   this.asrock._x = -anchoMC;
}
if (asrock._x<-anchoMC) {
   this.asrock._x = anchoEscena;
}

//asus
if (asus._x>anchoEscena) {
   this.asus._x = -anchoMC;
}
if (asus._x<-anchoMC) {
   this.asus._x = anchoEscena;
}

//benq
if (benq._x>anchoEscena) {
   this.benq._x = -anchoMC;
}
if (benq._x<-anchoMC) {
   this.benq._x = anchoEscena;
}

//canon
if (canon._x>anchoEscena) {
   this.canon._x = -anchoMC;
}
if (canon._x<-anchoMC) {
   this.canon._x = anchoEscena;
}

//dlink
if (dlink._x>anchoEscena) {
   this.dlink._x = -anchoMC;
}
if (dlink._x<-anchoMC) {
   this.dlink._x = anchoEscena;
}

//epson
if (epson._x>anchoEscena) {
   this.epson._x = -anchoMC;
}
if (epson._x<-anchoMC) {
   this.epson._x = anchoEscena;
}
// Y ahora Al ataqueeeee!!! pasamos al frame 2
play();


segundo frame

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)+30) {
   this.a4tech._x -= factor;
   this.amd._x -= factor;
   this.aoc._x -= factor;
   this.aopen._x -= factor;
   this.apc._x -= factor;
   this.asrock._x -= factor;
   this.asus._x -= factor;
   this.benq._x -= factor;
   this.canon._x -= factor;
   this.dlink._x -= factor;
   this.epson._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)-30) {
   this.a4tech._x -= factor;
   this.amd._x -= factor;
   this.aoc._x -= factor;
   this.aopen._x -= factor;
   this.apc._x -= factor;
   this.asrock._x -= factor;
   this.asus._x -= factor;
   this.benq._x -= factor;
   this.canon._x -= factor;
   this.dlink._x -= factor;
   this.epson._x -= factor;
}
/*
Debido a que el número factor es incremental, se debe
proceder a una corrección de la posición de los mc, de
forma que la posiciones de los mc dependan unas de otras
*/
//Corrección del a4tech
if (this.epson._x<anchoEscena-anchoMC) {
   this.a4tech._x = this.epson._x+anchoMC;
}
//corrección del amd
if (this.a4tech._x<anchoEscena-anchoMC) {
   this.amd._x = this.a4tech._x+anchoMC;
}
//corrección del aoc
if (this.amd._x<anchoEscena-anchoMC) {
   this.aoc._x = this.amd._x+anchoMC;
}
//corrección del aopen
if (this.aoc._x<anchoEscena-anchoMC) {
   this.aopen._x = this.aoc._x+anchoMC;
}
//corrección del apc
if (this.aopen._x<anchoEscena-anchoMC) {
   this.apc._x = this.aopen._x+anchoMC;
}
//corrección del asrock
if (this.apc._x<anchoEscena-anchoMC) {
   this.asrock._x = this.apc._x+anchoMC;
}

//correccion del asus
if (this.asrock._<anchoEscena-anchoMC){
   this.asus._x = this.asrock._x+anchoMC;
}

//correccion del benq
if (this.asus._<anchoEscena-anchoMC){
   this.benq._x = this.asus._x+anchoMC;
}

//correccion del canon
if (this.benq._<anchoEscena-anchoMC){
   this.canon._x = this.benq._x+anchoMC;
}

//correccion del dlink
if (this.canon._<anchoEscena-anchoMC){
   this.dlink._x = this.canon._x+anchoMC;
}

//correccion del epson
if (this.dlink._<anchoEscena-anchoMC){
   this.epson._x = this.dlink._x+anchoMC;
}

// Vamonoooooos !!!
gotoAndPlay(1);


ayudenme please! ;)

Por Soundwave

Claber

1728 de clabLevel

5 tutoriales

 

Los Andes CHILE

firefox
Citar            
MensajeEscrito el 10 Feb 2006 10:29 am
Bueno pues este error es matemático, es decir si tienes 11 clips a 150px cada uno da un total de 1650px, que corresponde al ancho de la escena, en realidad la variable se tendría que llamar anchoTotalMcs, lo que ocurre que como en el tuto coincidia pues así se quedó. Es decir lo importante es cuadrar el ancho total de los MCS. Así que cambia los 600 por los 1650 y ya está. Por cierto, ahora no lo recuerdo, pero también puedes enmascarar con una máscara dinámica el zona que quieres que se vea de la forma habitual.

Suerte!

Por Sisco

BOFH

3700 de clabLevel

12 tutoriales
4 articulos

Genero:Masculino   Bastard Operators From Hell

Catalunya

firefox
Citar            
MensajeEscrito el 10 Feb 2006 06:21 pm

Sisco escribió:

Así que cambia los 600 por los 1650 y ya está
lo hice y funciona mostrando un espacio en blanco

Sisco escribió:

puedes enmascarar con una máscara dinámica el zona que quieres que se vea de la forma habitual.
:? ni idea de que me hablas :(
gracias por responder ;)

Por Soundwave

Claber

1728 de clabLevel

5 tutoriales

 

Los Andes CHILE

konqueror
Citar            
MensajeEscrito el 10 Feb 2006 06:27 pm
Bueno, réstale 150px a los 1650pm, ejem...

Creas un mc con las medidas que quieras, le pones el nombre miMascara_mc.
Y en el código pones: setMask(miMascara_mc);

Suerte!

Por Sisco

BOFH

3700 de clabLevel

12 tutoriales
4 articulos

Genero:Masculino   Bastard Operators From Hell

Catalunya

firefox

 

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