Un ejemplillo ahora sin tanta prisa: function colocarBotones(totalBotones) { clearInterval(_this.id); trace("Botones"); for (var i = 0; i<totalBotones; i++) { trace("loop "+this+" :: "+_this); } } var _this = this; var xml:XML = new XML(); xml.ignoreWhite = true; xml.onLoad = function(exito) { if (exito) { trace("Cargado"); var totalBotones = this.firstChild.childNodes[0].firstChild.nodeValue; _this.id = setInterval(colocarBotones, 100, totalBotones); } else { trace("Error"); } }; xml.load("veces.xml");
Y el xml: <veces> <cuantas>10</cuantas> </veces> [Buti] -----Mensaje original----- De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] En nombre de Miguel Romero Portero Enviado el: jueves, 28 de abril de 2005 11:37 Para: asnativos@5dms.com Asunto: RE: [ASNativos] XML El this de la función colocarBotones, al llamarla desde el evento onLoad del objeto XML, "apunta" a dicho objeto. Prueba a definir una variable fuera que apunte al donde quieres attachar los movieclips: var _this=this y sustituye en la funcion colocarBotones los this por _this; [Buti] -----Mensaje original----- De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] En nombre de Rodrigo País Garay Enviado el: jueves, 28 de abril de 2005 11:27 Para: asnativos@5dms.com Asunto: [ASNativos] XML Hola todos: Bueno, no tengo precisamente un problema con el XML pero para no ponerle expediente X al subject... El problema es el siguiente: Tengo una función que crea una botonera dinámicamente: <CODE> function colocarBotones (totalBotones) { updateAfterEvent(); clearInterval (intervalID); trace ("Botones"); //Sólo para esegurarme que la función está llamada var botonesArray : Array = new Array (); var mc : MovieClip; for (var i = 1; i < totalBotones; i ++) { trace ("loop") //Cuento la cantidad de botones this.attachMovie ("boton_mc", "boton" + i, i + 100); mc = this ["boton" + i]; mc._x = 53 boton1._y = 100; }else { mc._y = this ["boton" + (i - 1)]._y + 21; } botonesArray.push (mc); mc.texto_txt.text = "textoBoton" + i; colorObjTemp = this ["boton" + i].marca_color; tempColor = new Color ("colorObjTemp"); tempColor.setRGB (0x003298); } } </CODE> Si la llamo directamente funciona perfecto. Pero hago la carga de un XML y al terminar la carga llamo a la función con un : intervalID = setInterval (colocarBotones, 100, totalBotones ); Y entonces me da el trace "Botones" y el "loop" la cantidad correcta de veces, pero no veo nada en la pantalla. Llevo desde ayer por la mañana y ya no sé qué más probar. Cualquier sugerencia es bienvenida. Pego la función de carga del XML por si es algo de eso: <CODE> var obj_xml : XML = new XML (); obj_xml.ignoreWhite = true; //Función de carga obj_xml.onLoad = function (exito) { if (exito) { trace ("Cargado"); totalBotones = obj_xml.firstChild.childNodes [0].childNodes.length); intervalID = setInterval (colocarBotones, 100, totalBotones ); } else { trace ("Error"); } }; function cargarXML () { obj_xml.load ("navegacion.xml"); } </CODE> ---------------------------------- Lista ASNativos:asnativos@5dms.com http://www.5dms.com/listas ---------------------------------- ---------------------------------- Lista ASNativos:asnativos@5dms.com http://www.5dms.com/listas ---------------------------------- ---------------------------------- Lista ASNativos:asnativos@5dms.com http://www.5dms.com/listas ----------------------------------