http://www.parrillamiranda.com/
Encontre un tutorial que muestra como hacerlo, pero la diferencia esta en que en el tuto, el MC continua desplazandose, y yo lo que quiero lograr es que se detenga cuando llega a los limites de la pantalla. les paso el codigo:
1- cree una pelicula flash de 600 x 400.
2- cree un MC llamado rojo, el cual solo contiene la imagen del mapa que quiero mostrar.
3- lo lleve a la escena 1, en el primer fotograma y le puse como nombre de instancia rojo_mc, y en las propiades del MC seleccione comportamiento boton.
4-agregue otro fotograma seguido a este que contiene el MC.
5-inserte otra capa, con dos fotogramas, en el primero puse el siguiente codigo AS:
Código ActionScript :
//Declaramos variables // Variable para saber la posición _x del mouse var xposMouse:Number = _root._xmouse; var yposMouse:Number = _root._ymouse; // Variable para asignar la velocidad máxima del movimiento de los MC var velMax:Number = 1; // Velocidad mínima de los MC var velMin:Number = 0; // Variable para asignar el punto medio de la escena var xMitadEscena:Number = 300; var yMitadEscena:Number = 200; // 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; var altoEscena:Number = 400; // 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 = 1280; var altoMC:Number = 800; //variable factor, que en realidad es la función matemática // f(x) = ax + b var factorx:Number = xposMouse*(velMax-velMin)/xMitadEscena+2*velMin-velMax; var factory:Number = yposMouse*(velMax-velMin)/yMitadEscena+2*velMin-velMax; //No queremos que factor pase de 6, o de -6 if (factorx>velMax) { factor = velMax; } else if (factorx<-velMax) { factorx = -velMax; } if (factory>velMax) { factory = velMax; } else if (factory<-velMax) { factory = -velMax; } //Si el mc se ha salido por la derecha, ponerlo //en la izquierda o viceversa. if (rojo_mc._x>anchoEscena) { this.rojo_mc._x = -anchoMC; } if (rojo_mc._y>altoEscena) { this.rojo_mc._y = -altoMC; } if (rojo_mc._x<-anchoMC) { this.rojo_mc._x = anchoEscena; } if (rojo_mc._y<-altoMC) { this.rojo_mc._y = altoEscena; } play();
6- en el segundo fotograma, agregue este codigo AS:
Código ActionScript :
//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.rojo_mc._x -= factorx; } if (yposMouse>(yMitadEscena)+30) { this.rojo_mc._y -= factory; } //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.rojo_mc._x -= factorx; } if (yposMouse<(yMitadEscena)-30) { this.rojo_mc._y -= factory; } gotoAndPlay(1);
Funciona bien, pero se sale de los margenes de la pantalla, y eso es lo que quiero corregir. Alguien me puede sugerir o resolver el problema???
Aca les dejo el flash para que lo vean:
http://www.multidisegno.com/pruebas/activex/easing.zip. Desde ya, muchas gracias.