Слушатель событий по умолчанию в пространстве дерева Flex - PullRequest
1 голос
/ 07 октября 2010

Я заметил, что при выборе узла дерева, если щелкнуть место, выбранный узел открывается ... как я могу удалить это событие?

1 Ответ

1 голос
/ 07 октября 2010

Не похоже, что есть способ предотвратить событие, и если оно есть, я не уверен, что это разумно, так как keyDownHandler в Tree делает немного больше, чем просто открывает узел.

Я решил это путем создания собственного дерева. К сожалению, мне пришлось скопировать несколько строк кода из keyDownHandler Дерева.

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);
        }
    }
}
...