Anda di halaman 1dari 2

En este ejemplo voy a tratar de explicar como se hace el "Efecto lupa" en Flash, con Actionscript 3.0.

Para simplificar voy a explicar la teoria basndome en una imagen que tengo en un MovieClip el escenario. Por supuesto esto se puede modificar para cargar imgenes externamente o como se necesite. Los pasos que tenemos que seguir para crear el "efecto lupa" son estos: -Crear una copia del MovieClip en BitmapData, y ponerla por encima a una escala mayor que el original: 1. 2. //Creo un pantallazo del clip, lo pongo con una escala == zoom 3. var myBitmapData:BitmapData = new BitmapData(clip.width, clip.height); 4. myBitmapData.draw(clip); 5. var bmp:Bitmap = new Bitmap(myBitmapData); 6. bmp.smoothing = true; 7. contenedor.addChild(bmp); 8. contenedor.scaleX = contenedor.scaleY = zoom; 9. addChild(contenedor); -Poner a la copia una mscara circular, de manera que solo se vea el trozo de imgen tapado por la mscara: 1. 2. //Le pongo una mascara del tamao t al contenedor 3. mascara.graphics.beginFill(0x000000, 1); 4. mascara.graphics.drawCircle(0, 0, t); 5. contenedor.mask = mascara; 6. addChild(mascara); 7. -Aadimos un evento enterframe. Dentro de la funcin del evento vamos a mover la mscara siguiendo al ratn, y a recolocar la "copia grande": 1. 2. addEventListener(Event.ENTER_FRAME,renderizar) 3. En la funcin del evento tenemos que mover la mscara para que siga al ratn, y recolocar la imagen grande para que el trozo que se v sea el que corresponde a la imagen pequea. La funcin es cuestin es esta: 1. 2. private function renderizar(e:Event):void { 3. 4. 5. 6. 7. 8. 9. //Calculo el porcentaje que tengo que mover el pantallazo var porcentajeX = clip.mouseX / clip.width; var porcentajeY = clip.mouseY / clip.height; //Recoloco el contenedor contenedor.x = -(contenedor.width - clip.width) * porcentajeX contenedor.y = -(contenedor.height - clip.height) * porcentajeY //Muevo la mascara

10. 11. 12. } 13.

mascara.x = escenario.mouseX; mascara.y = escenario.mouseY;

Anda mungkin juga menyukai