j'avais développé il y a quelques mois une fonction en AS2 permettant de trouver un élément dans un composant Tree (ouverture des noeuds jusqu'à cet éléments, et sélection automatique de cet élément).
La voici :
Actionscript
/**
* recursiveFunctionSearchElement
* @param node : node en cours
* @param searchElement : chaine à rechercher
*/
private function recursiveFunctionSearchElement(node : XMLNode,searchElement : String):Void
{
var childs:Array = node.childNodes;
var l:Number = childs.length;
var pos : Number =0;
// ouverture de la node en cours
Tree_tr.setIsOpen(node, true);
//findTagDefault est un booleen déclaré dans ma classe
while((!findTagDefault)&&(pos<l))
{
if(childs[pos].hasChildNodes())
{
// rappel de la fct sur les enfants
recursiveFunctionSearchElement(childs[pos],searchElement);
}
else
{
if (childs[pos].attributes["data"] == searchElement)
{
//selection de la node et positionnement de la scroll
Tree_tr.selectedNode = node.childNodes[pos];
Tree_tr.vPosition = Tree_tr.getDisplayIndex(Tree_tr.selectedItem);
findTagDefault = true;
}
}
pos++;
if((!findTagDefault)&&(pos==l))
{
// fermeture de la node en cours si l'element n'a pas été trouvé
Tree_tr.setIsOpen(node,false);
}
}
}
J'essai de transposer ce code en AS3, mais c'est plutôt laborieux...
Je n'arrive pas à trouver les fonctions correspondante à celles-ci :
- node.childNodes
- setIsOpen(node, true);
Donc concrètement, je n'arrive pas à parcourir le contenu de ma Tree, c'est à dire à récupérer les noeuds en cours d'exploration (j'ai essayé montree.dataProvider.getItemAt(...), mais c'est pas terrible).
Et impossible d'ouvrir et de fermer une tree par code...
Voilà, si quelqu'un pouvais y jetter un coup d'oeil...
Merci d'avance
