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
----------------------------------

Responder a