Bueno os cuento mi problema:
Estoy trabajando en una peli de AS3 e inserto mediante un for varias instancias de un mismo mc que tengo en la Biblioteca. Mediante el for también aprovecho para declarar dentro del mc algunas vars que me ayudaran a rellenar el contenido.
Línea de tiempo principal
Código:
Este mc crea desde su línea de tiempo interna un Shape y dos TextField, los TF se rellenan con las vars declaradas, y hasta ahí todo bien.var menu:XML = new XML(); var request1:URLRequest = new URLRequest("xml/menu.xml"); var menuEsLoader:URLLoader = new URLLoader(); menuEsLoader.load(request1); for(var a = 0; a < menu.elements("*").length(); a++){ var btn:MovieClip = new btnPrincipal(); btn.num = menu.registro[a].@codigo; btn.nombre = menu.registro[a].@nombre; btn.col_franja = menu.registro[a].@col_franja; btn.ancho = menu.registro[a].@ancho; btn.x = posBtns.x; btn.y = posBtns.y; btn.buttonMode = true; posBtns.x += Number(menu.registro[a].@ancho) + 20; addChild(btn); }
Línea de tiempo del mc "btnPrincipal"
Código:
EL PROBLEMA: la opción "buttonMode" declarada en el for inicial solo funciona cuando el ratón pasa por encima del Shape pero no cuando pasa por encima de los TextField. El hecho es que la función declarada para el evento "CLICK" si funciona aunque no aparezca la manita, pero ya sabemos que para los clientes si no aparece la manita no hay botón.var numero:TextField = new TextField(); numero.x = 4; numero.width = 16; numero.height = 30; numero.multiline = true; numero.wordWrap = true; numero.selectable = false; numero.text = this["num"]; var titulo:TextField = new TextField(); titulo.x = numero.x + numero.width; titulo.width = this["ancho"]; titulo.height = 30; titulo.multiline = true; titulo.wordWrap = true; titulo.selectable = false; titulo.text = this["nombre"]; var fondo:Shape = new Shape(); fondo.graphics.beginFill(this.parent["config"].btn_nivel1, 100); fondo.graphics.lineStyle(1, this.parent["config"].btn_nivel1, 100); fondo.graphics.drawRect(0, 0, (numero.width+titulo.width), 30); fondo.graphics.endFill(); function clik(MouseEvent:Event):void{ trace(MouseEvent.target.name); } this.addEventListener(MouseEvent.CLICK, clik); addChild(fondo); addChild(numero); addChild(titulo);
Muchas gracias por la ayuda que me podáis ofrecer de antemano.