Este es un ejemplo de lupa sobre un mapa realizado en Flash CS3 y actionscript 3. Hacer este efecto es muy sencillo, únicamente hemos de tener dos imágenes, una pequeña y otra más grande que ocultaremos dentro de una máscara. Esta máscara la moveremos para crear el efecto de lupa.
Desplaza el mouse sobre la imagen para mover la lupa
Colocaremos la imagen pequeña dentro de un MovieClip que se llame "mapaSmall" y la imagen grande dentro de otro que se llame "mapaBig".
La máscara que ocultará el mapa grande será otro MovieClip con el nombre "mascara", y la lupa la llamaremos "lupa" y será un clip de igual tamaño que el contorno de la máscara.

Una vez montados los clips empecemos con el código:
Primero de todo crearemos una serie de variables
Código :
var porcentajeX:uint = 100 / (mapaBig.width / (mapaSmall.width - lupa.width / 2)); var porcentajeY:uint = 100 / (mapaBig.height / (mapaSmall.height - lupa.height / 2)); var distX:uint = 0; var distY:uint = 0;
Las variables porcentajeX/Y definen que tanto por ciento está ampliada la imagen grande en relación a la pequeña.
Las variables distX/Y nos indican la distancia de corrección para que la zona de la imagen grande situada bajo el mouse coincida con la zona de la imagen pequeña. Por defecto colocaremos estos valores a 0.
Ahora crearemos una función que se ejecute cada vez que movamos el mouse.
Código :
this.addEventListener(MouseEvent.MOUSE_MOVE, lupaMouseMove);
//-----------------------------------------------
function lupaMouseMove(event:MouseEvent):void
{
calculaDist();
mueveLupa();
//
lupa.x = mouseX - lupa.width / 2;
lupa.y = mouseY - lupa.height / 2;
//
if (lupa.x < mapaSmall.x) {
lupa.x = mapaSmall.x;
} else if (lupa.x > mapaSmall.x + mapaSmall.width - lupa.width) {
lupa.x = mapaSmall.x + mapaSmall.width - lupa.width;
}
if (lupa.y < mapaSmall.y) {
lupa.y = mapaSmall.y;
} else if (lupa.y > mapaSmall.y + mapaSmall.height - lupa.height) {
lupa.y = mapaSmall.y + mapaSmall.height - lupa.height;
}
//
mascara.x = lupa.x
mascara.y = lupa.y
}En esta función moveremos el MovieClip "lupa" en relación a la posición del mouse, controlaremos que el clip no salga de la pantalla, y haremos que la posición de la máscara sea la misma que la lupa.
En esta función también haremos una llamada a dos funciones. Una que actualizaran las variables distX/Y que variaran según la posición de la lupa y del porcentaje de ampliación de las imágenes, y otra que hará que la imagen grande se mueva según estas variables.
Código :
function calculaDist():void
{
distX = (lupa.x - mapaSmall.x) / porcentajeX * 100;
distY = (lupa.y - mapaSmall.y) / porcentajeY * 100;
}
function mueveLupa():void
{
mapaBig.x = mascara.x - distX;
mapaBig.y = mascara.y - distY;
}Y liso!
Descargar el archivo .fla

Por enjoydasilence el 25 de Septiembre de 2007
Parece que estuvieses pasando mis proyectos de AS2 a AS3 sin necesidad de pedírtelo!.
*Abre el antivirus y busca spyware que pueda incriminar a Zguillez...
La lupa fue lo primero que aprendí a hacer cuando llegué a clab, gracias a un ejemplo de L$. Cómo pasa el tiempo
Por pabletein el 25 de Septiembre de 2007
...lo bien que me hubiera venido esto hace un par de meses!!!!
Cada dia aprendiendo más!
Por d-virus el 25 de Septiembre de 2007
Ahora todos los tutoriales que antes ya eran repetidos, ahora se vuelven a ver necesitar.
Por tutor el 26 de Septiembre de 2007
Por alex el 26 de Septiembre de 2007
Por Ruby el 26 de Septiembre de 2007
Por Cesar el 26 de Septiembre de 2007
Por karina el 26 de Septiembre de 2007
alex_blog :
Existen millones de este ejemplo para As2
Por Señor Oz el 27 de Septiembre de 2007
aplausooooooos¡¡¡¡¡
Por gg el 29 de Septiembre de 2007
Por trumoc el 03 de Octubre de 2007
trumoc
Por alejo17.77@hot el 30 de Noviembre de 2007
Por Taytus el 02 de Enero de 2008
Gracias por el aporte.
Salu2.
Por cecy el 03 de Marzo de 2008
clipdepelicula-blog :
Corregido
Por darkaka1980 el 03 de Junio de 2008
darkaka1980-blog :
mira aqui y aqui
Por alex el 01 de Diciembre de 2008
Por omarsillo el 13 de Enero de 2009
ESTUBIERA PADRE QUE DEJARS EL ARCHIVO CON TUS DERECHOS DE AUNTOR PARA QUE LAS PERSONAS TAMBIEN LO PUEDAN VER CUANDO UNO LOS MUESTRE EN LAS ESCULAS Y DECIR . QUIEN ES EL AUNTOR..
SI QUE ERES BUENO...
SALUDOS ..
Por Karito el 11 de Abril de 2009
Por Joao el 18 de Junio de 2009
Por tata el 18 de Julio de 2009
Por Willi Morris el 20 de Noviembre de 2009
Veo que todos los comentarios han sido muy buenos frente a este post, pero jeje, creo que soy el unico con problemas... no se si me puedas colaborar. Pero estoy intentando usar el zoom en una imagen con diferentes proporciones en CS4 con AS3. Funciona bien pero mira que cuando muevo el mouse sobre el zoom brinca a un lado y no se mueve mas. No se, espero sea una bobada, ojala haya solución, muchas gracias.
Un saludo
Por isayui el 14 de Diciembre de 2009
BIEN!!!
Por vicky el 14 de Diciembre de 2009
Por Carlos Guzmán el 11 de Mayo de 2010
Por Jerardila el 06 de Junio de 2010
Por Majestik el 17 de Enero de 2011
Por alberto el 22 de Febrero de 2012
Por armandokdko el 15 de Mayo de 2012