Не похоже, что есть способ предотвратить событие, и если оно есть, я не уверен, что это разумно, так как 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);
}
}
}