Написал так:

Код AS3:
private function handleCheckClick(e:MouseEvent):void
{
FlexGlobals.topLevelApplication.tree.expandItem(item, false, false);
disclosureIcon.addEventListener(MouseEvent.MOUSE_DOWN, openItem_Handler);
}
...
private function openItem_Handler(event:MouseEvent):void
{
FlexGlobals.topLevelApplication.tree.expandItem(item, false, false);
}
я кликаю по чекбоксу, потом пытаюсь развернуть ветку это не получается все гуд, потом опять пытаюсь развернуть эту ветку а она разворачивается(((((
Добавлено через 2 часа 51 минуту
У меня получилось!!! Всем большое спасибо.
Вот так вышло:

Код AS3:
tree.addEventListener(TreeEvent.ITEM_OPEN, openItem_Handler);
...
private function openItem_Handler(event:TreeEvent):void
{
var n:int = tree.linearTree.length;
for (var i:int = 0; i < n; i++)
{
if (!Item(tree.linearTree[i]).canOpen)
tree.expandItem(tree.linearTree[i], false, false);
}
}
...
//Код в классе итемрендерера
private function handleCheckClick(e:MouseEvent):void
{
if (item.selected)
{
//FlexGlobals.topLevelApplication.tree.expandItem(item, false, false);
item.canOpen = false;
}
else
{
item.canOpen = true;
}
}