Il codice è giusto. Per quanto riguarda il caricamento, ti basta verificare di aver cliccato su un nodo e non una cartellina:
codice:
var listenerObject = new Object();
listenerObject.change = function(evtObject)
{
if(!evtObject.target.getIsBranch(evtObject.target.selectedNode)){
var dat:Object = evtObject.target.selectedItem.attributes.data;
var nonno:String = evtObject.target.selectedItem.parentNode.parentNode.attributes.label;
var padre:String = evtObject.target.selectedItem.parentNode.attributes.label;
var figlio:String = evtObject.target.selectedItem.attributes.label;
// solo se anche nonno è definito, e quindi sono definite tutte e tre le variabili
nonno = nonno == undefined ? "" : nonno;
padre = padre == undefined ? "" : padre;
trace(figlio + " - " + padre + " - " + nonno);
_global.sezione = nonno;
_global.categoria = padre;
_global.articolo = figlio;
_global.dati = dat;
caricaselezione();
}
};
myTree.addEventListener("change", listenerObject);