Hola tengo un problemita con lo siguiente, al meter para dentro del Flash un XML:
Estoy trabajando con el componente Tree y cuando tengo el XML externo me pincha ok, pero cuando lo meto dentro mediante el ParseXML da un pequeño bateo en la parte visual, sale algo como [type function] donde debe salir el arbol, cuando le doy a esto se despliega el arbol bien pero tiene este defectico que quisiera me corrigieran.....
Aqui 1ro esta el codigo con el defecto (XML interno) y despues esta el que pincha ok con el (XML externo)
Saludos de antemano....
Juan Carlos...
function abreSeccion (nodo:XMLNode, label:String):Void
{
for (var Nodo = nodo.childNodes[0]; Nodo != null; Nodo = Nodo.nextSibling)
{
if (Nodo.attributes.name == label)
{
textarea.text = Nodo.firstChild;
break;
}
if (Nodo.childNodes.length > 0)
{
abreSeccion (Nodo, label);
}
}
}
// --------------------------------------
var arbolChange:Object = new Object ();
arbolChange.change = function (evObj)
{
var arbol = evObj.target;
var nodoSeleccionado:XMLNode = arbol.selectedNode;
// si es carpeta tansolo la abrimos
// si no es carpeta, mostramos la seccion correspondiente a su etiqueta
if (arbol.getIsBranch (nodoSeleccionado))
{
arbol.setIsOpen (nodoSeleccionado, !arbol.getIsOpen (nodoSeleccionado), true);
arbol.selectedNode = null;
}
else
{
abreSeccion (secciones.firstChild, nodoSeleccionado.attributes.label);
}
};
tree.addEventListener ("change", arbolChange);
var secciones:XML = new XML ();
var arbol:XML = new XML ();
secciones.ignoreWhite = true;
arbol.ignoreWhite = true;
secciones.parseXML('<tree><colores><color name="Rojo">Texto para el color Rojo</color><color name="Verde">Texto para el color Verde</color><color name="Azul">Texto para el color Azul</color><color name="Amarillo">Texto para el color Amarillo</color><color name="Negro">Texto para el color Negro</color></colores></tree>');
arbol.parseXML('<XMLDocumentObject><node label="Colores" isBranch="true"><node label="Rojo"/><node label = "Verde" /><node label = "Azul" /><node label = "Amarillo" /><node label = "Negro" /></node></XMLDocumentObject>');
tree.dataProvider = this.firstChild;
tree.dataProvider = arbol;
stop();
/////////////////////////////////////////////////////////////////////////////////////
Ahora el bueno con el XML externo.....
function abreSeccion (nodo:XMLNode, label:String):Void
{
for (var Nodo = nodo.childNodes[0]; Nodo != null; Nodo = Nodo.nextSibling)
{
if (Nodo.attributes.name == label)
{
textarea.text = Nodo.firstChild;
break;
}
if (Nodo.childNodes.length > 0)
{
abreSeccion (Nodo, label);
}
}
}
// --------------------------------------
var arbolChange:Object = new Object ();
arbolChange.change = function (evObj)
{
var arbol = evObj.target;
var nodoSeleccionado:XMLNode = arbol.selectedNode;
// si es carpeta tansolo la abrimos
// si no es carpeta, mostramos la seccion correspondiente a su etiqueta
if (arbol.getIsBranch (nodoSeleccionado))
{
arbol.setIsOpen (nodoSeleccionado, !arbol.getIsOpen (nodoSeleccionado), true);
arbol.selectedNode = null;
}
else
{
abreSeccion (secciones.firstChild, nodoSeleccionado.attributes.label);
}
};
tree.addEventListener ("change", arbolChange);
// --------------------------------------
// cargamos los XMLs
// --------------------------------------
var arbol:XML = new XML ();
arbol.ignoreWhite = true;
arbol.onLoad = function ()
{
tree.dataProvider = this.firstChild;
};
// cargamos secciones
var secciones:XML = new XML ();
secciones.ignoreWhite = true;
secciones.onLoad = function ()
{
// cargamos árbol
arbol.load ("xmls/arbol.xml");
};
secciones.load ("xmls/secciones.xml");
// precarga
tree.dataProvider = "<node label='cargando XMLs...' />";
stop();