Coloco mi codigo as3
Código :
import flash.net.URLRequest ;
import flash.display.MovieClip;
import flash.events.*;
import com.adobe.serialization.json.JSON;
var url:String = \\\"menu.txt\\\"; //Obtengo mis datos en formato JSON
var reqURL:URLRequest = new URLRequest(url);
var loader:URLLoader = new URLLoader(reqURL);
loader.addEventListener(Event.COMPLETE, handleComplete);
function handleComplete( event:Event):void{
var loader:URLLoader = URLLoader(event.target);
var jsDecode:Object = JSON.decode( loader.data ) ;
iniciar(jsDecode);
}
function iniciar(js:Object) {
crearMenu(js.menu); //js.menu son los items del Menu Nombre y URL
}
function crearMenu(menu:Object) {
var menu_i:Number = menu.length;
for(var i:int;i<menu_i;i++) {
// Tengo en la libreria un MovieClip exportado como miMenu.
var mc:miMenu = new miMenu();
addChild(mc);
crearTexto(menu[i].nombre,mc); //Muestro el texto del menu
mc.x= (mc.width + 1) * i;
mc.y=10
}
}
function crearTexto(texto:String,mc:MovieClip) {
// Esto es solamente el formato del texto
var label:TextField = new TextField();
label.autoSize = TextFieldAutoSize.LEFT;
label.htmlText = texto;
label.selectable=false;
var format:TextFormat = new TextFormat();
format.font = \\\"Verdana\\\";
format.color = \\\"0xefefef\\\";
format.size = 11;
label.setTextFormat(format);
mc.addChild(label);
}
Mi problema esta aca, esta funcion va en el primer frame del movieclip de la libreria exportado como miMenu
Código :
var mMenu:Object = this;
mMenu.addEventListener(MouseEvent.MOUSE_OVER, mouseHandler);
mMenu.addEventListener(MouseEvent.MOUSE_OUT, mouseHandler);
//Esto es para que me aparezca la manito
mMenu.buttonMode = true;
mMenu.useHandCursor = true;
function mouseHandler(e:MouseEvent):void {
switch (e.type) {
case MouseEvent.MOUSE_OVER :
this.gotoAndPlay(\\\'over\\\');
break;
case MouseEvent.MOUSE_OUT :
this.gotoAndPlay(\\\'out\\\');
break;
case MouseEvent.MOUSE_UP :
this.gotoAndPlay(\\\'over\\\');
break;
}
}
El codigo funciona de maravilla, el problema que tengo como dije antes, es que cuando hago un MOUSE_OVER sobre el MovieClip (miMenu) el mismo se ejecuta pero cuando el mouse pasa sobre el TextField que esta en el centro de de miMenu el mouseOver se vuelve a ejecutar.
Si hago un debug con evt.target detecto que el target es miMenu y luego TextField, como hago para que el target por default sea solo miMenu es decir el movieclip entero y no todos sus childs.
Espero hallan comprendido mi problema., pueden ver el SWF en http://www.matius77.com.ar si pasan el mouse cerca de la palabra del menu ocurre el problema.
