J'ai remarqué que lorsque je sélectionne un nœud d'arbre si l'on clique sur un espace, le nœud sélectionné s'ouvre ... comment puis-je supprimer cet événement?Écouteur d'événements par défaut de l'espace Flex tree
1
A
Répondre
1
Il ne semble pas qu'il y ait un moyen d'empêcher l'événement et s'il y en a un, je ne suis pas sûr que ce soit judicieux puisque le keyDownHandler de l'arbre fait un peu plus que simplement ouvrir le nœud. J'ai résolu le problème en créant un arbre personnalisé. Malheureusement, j'ai dû copier quelques lignes de code à partir de keyDownHandler de l'arbre.
public class MyTree extends Tree
{
override protected function keyDownHandler(event:KeyboardEvent):void
{
if (event.keyCode == Keyboard.SPACE)
{
// Code copied from Tree's keyDownHandler
// if user has moved the caret cursor from the selected item
// move the cursor back to selected item
if (caretIndex != selectedIndex)
{
// erase the caret
var renderer:IListItemRenderer = indexToItemRenderer(caretIndex);
if (renderer)
drawItem(renderer);
caretIndex = selectedIndex;
}
event.stopImmediatePropagation();
}
else
{
super.keyDownHandler(event);
}
}
}