Introducción
Una petición muy comun en los foros de Flash es el efecto de una lupa sobre una imagen, una forma vectorial o en general sobre cualquier objeto de Flash; este tutorial, aporte de nuestro amigo cusiri nos mostrara en sencillos pasos las tecnicas para crear el solicitado efecto.Por favor, refierete primero al ejemplo descargable de este tutorial ante una duda y luego al foro
Efecto de Lupa
El archivo fla consta de una capa donde coloco la imagen de tamaño normal, que es la que se ve en el escenario. El punto de registro lo he puesto en la esquina superior izquierda.
Otra capa (encima) con un movie clip, creado de la siguiente manera.
- Creo un círculo y le quito el contorno, queda sólo el relleno. Lo convierto a movieclip y le doy un nombre de instancia. Yo le puse casagrande_mc.
- Edito el MC. El relleno está en la capa 1. Agrego otra capa (Capa 2) y en ella coloco la misma imagen de la escena principal y le aumento su escala X y Y en 200%. Debe estar en el centro del MC. Convierto también esta imagen en Mc y le doy un nombre de instancia. Yo le puse lacasota_mc.
- En la línea de tiempo cambio el orden de las capas, colocando la Capa 1 encima de la Capa2. Ahora puedes ver el relleno del círculo en la Capa 1.
- La Capa 1 donde está el relleno, la convierto en Máscara.
- Agrego una tercera capa encima de la máscara. La Capa 3 debe estar encima de las otras dos.
Dibujo el aspecto que tendrá la mira. En mi caso, solo dibuje dos líneas dentro del círculo que lo dividen en cuatro sectores y le hice unos lados redondeados. En esta capa (y si quieres en otras más arriba) dibujas la forma que quieres para tu mira o lupa. Puedes hacer otro MC, etc. - Ahora escribimos las acciones.
Selecciona el MC que creaste en el punto 2 (lacasota_mc) y abre el panel de acciones, ahí escribes lo siguiente:
onClipEvent (enterFrame) { /*casagrande_mc es el nombre de instancia del clip que creaste en el punto 1.*/ xmove = _root.casagrande_mc._x; ymove = _root.casagrande_mc._y; _x = (250 - xmove) * 2; _y = (225 - ymove) * 2; }
Otra forma es escribiendo el código en una capa del nivel principal y hacer referencia de puntos en vez de colocar simplemente _x y _y. Este código podrías escribirlo debajo y después de la llave de cierre del código del Punto 7.
Quedaría así:
_root.onEnterFrame = function () { xmove = _root.casagrande_mc._x; ymove = _root.casagrande_mc._y; /*para indicarle a lacasota_mc que cambie su posición X Y según se mueva el ratón en la escena principal */ this.casagrande_mc.lacasota_mc._x = (250 - xmove) * 2; this.casagrande_mc.lacasota_mc._y = (225 - ymove) * 2; }
El valor 250 y 225 depende del tamaño del gráfico de tamaño normal que utilices.
Según el dibujo que tengas, va a ser más o menos la mitad del ancho de tu imagen. En mi ejemplo la casa
de tamaño normal mide 499.9 (500) de ancho por 302.7 (300) de alto. Lo que hay que tomar en cuenta, es que que el valor, permita que la imagen grande a través de la lupa, se vea cerca de la imagen
normal.
Regresa a la escena principal (primer nivel)
Si quieres agrega otra capa para escribir el siguiente código
_root.onLoad = function () { casagrande_mc.startDrag(true); // repito que casagrande_mc es el MC creado en Punto 1 Mouse.hide(); }
Eso es todo. Este es un efecto bastante sencillo pero te dará las pautas para crear diseños donde necesites un efecto lupa, que según tu conveniencia pueden ser más sofisticados y llamativos que este simple ejemplito.
Recalco que existen formas más optimizadas y mejores de crear esto
Aquí está el zip con el fla de efecto lupa
Cusiri¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.
Publica tu comentario
El autor de este artículo ha cerrado los comentarios. Si tienes preguntas o comentarios, puedes hacerlos en el foro
Entra al foro y participa en la discusión
o puedes...
¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?
Inicia sesión
¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?
Registrate