Hola Gente, cómo están?
Les hago una consulta sobre flash, me bajé un archivo .fla que hace el efecto de lupz y zoom sobre un mapa. La idea es que tengo en un cuadrado a la izquierda una img chica del mapa y en el fondo el mapa en versión ampliada y cuando muevo el visor en el cuadrado de la izquierda el mapa de abajo se mueve. El tema es el siguiente, me funciona perfecto pero cuando trato de llamarlo a través de un loadmovienum no puedo mover el visor, es como si no registrara el código.
La verdad es que no se cómo puedo resolverlo, si alguno me puede dar una mano sería de gran ayuda.
Les dejo el as, por si les sirve para ayudarme.
var visor_fx:Boolean = false;
//-----------------------------------------------
var porcentajeX:Number = 100 / (mapaBig.width / visor.mapaSmall.width);
var porcentajeY:Number = 100 / (mapaBig.height / visor.mapaSmall.height);
visor.zona.width = mascara.width * porcentajeX / 100;
visor.zona.height = mascara.height * porcentajeY / 100;
var distX:Number = 0;
var distY:Number = 0;
//-----------------------------------------------
visor.botDrag.addEventListener(MouseEvent.MOUSE_DO WN, onStartDrag);
visor.botDrag.addEventListener(MouseEvent.MOUSE_UP , onStopDrag);
visor.botDrag.addEventListener(MouseEvent.MOUSE_OU T, onStopDrag);
visor.zona.botZona.addEventListener(MouseEvent.MOU SE_DOWN, onStartDrag);
visor.zona.botZona.addEventListener(MouseEvent.MOU SE_UP, onStopDrag);
visor.zona.botZona.addEventListener(MouseEvent.MOU SE_OUT, onStopDrag);
visor.mapaSmall.addEventListener(MouseEvent.MOUSE_ DOWN, onPosicionaZona);
this.addEventListener(MouseEvent.MOUSE_MOVE, MouseMove);
//-----------------------------------------------
function onStartDrag(e:Event):void
{
var clip:MovieClip = e.target.parent;
clip.startDrag();
visor_fx = true;
}
function onStopDrag(e:Event):void
{
e.target.parent.stopDrag();
visor_fx = false;
}
function MouseMove(e:Event):void
{
if (visor_fx == true) {
calculaDist();
mueveVisorZona();
controlaPosiciones();
}
}
//-----------------------------------------------
function onPosicionaZona(e:Event):void
{
var clip:MovieClip = e.target.parent;
clip.zona.x = mouseX-clip.x- clip.zona.width/2
clip.zona.y = mouseY-clip.y- clip.zona.height/2
calculaDist();
mueveVisorZona();
controlaPosiciones();
}
//-----------------------------------------------
function calculaDist():void
{
distX = (visor.zona.x - visor.mapaSmall.x) / porcentajeX * 100;
distY = (visor.zona.y - visor.mapaSmall.y) / porcentajeY * 100;
distX = (distX<0)?0:distX;
distY = (distY<0)?0:distY;
}
function mueveVisorZona():void
{
mapaBig.x = mascara.x - distX;
mapaBig.y = mascara.y - distY;
}
//-----------------------------------------------
function controlaPosiciones():void
{
//visor
if (visor.x<0) {
visor.x=0;
} else if (visor.x>stage.stageWidth-visor.width) {
visor.x=stage.stageWidth-visor.width;
}
if (visor.y<0) {
visor.y=0;
} else if (visor.y>stage.stageHeight-visor.height) {
visor.y=stage.stageHeight-visor.height;
}
//zona
if (visor.zona.x<visor.mapaSmall.x) {
visor.zona.x=visor.mapaSmall.x;
} else if (visor.zona.x>visor.mapaSmall.x+visor.mapaSmall.wi dth-visor.zona.width) {
visor.zona.x=visor.mapaSmall.x+visor.mapaSmall.wid th-visor.zona.width;
}
if (visor.zona.y<visor.mapaSmall.y) {
visor.zona.y=visor.mapaSmall.y;
} else if (visor.zona.y>visor.mapaSmall.y+visor.mapaSmall.he ight-visor.zona.height) {
visor.zona.y=visor.mapaSmall.y+visor.mapaSmall.hei ght-visor.zona.height;
}
//mapaBig
if (mapaBig.x>0) {
mapaBig.x=0;
} else if (mapaBig.x<mascara.width-mapaBig.width) {
mapaBig.x=mascara.width-mapaBig.width;
}
if (mapaBig.y>0) {
mapaBig.y=0;
} else if (mapaBig.y<mascara.height-mapaBig.height) {
mapaBig.y=mascara.height-mapaBig.height;
}
}
Gracias !!!
Besos