Я создаю многократно используемый компонент гибкого дерева.И я хотел бы придерживаться функции itemclick.Так что, когда пользователь щелкает в любом месте на одной из ветвей дерева.ветвь расширяется.Моя проблема в том, что я не знаю, как заставить функцию слушателя срабатывать.То, что я хотел бы сделать, это создать дерево полностью в as3.(без mxml).Обычно я устанавливаю itemClick на дерево в mxml.но я хочу сделать это в as3.В моем компоненте намного больше функций, но я удалил их, чтобы их было легче читать.
Может кто-нибудь помочь мне с этим?Я подумал, что если я переопределю функцию createChilderen и добавлю туда обработчик событий, он будет работать.Но не повезло.
это мой код;
package
{
import mx.controls.Tree;
import mx.controls.listClasses.IListItemRenderer;
import mx.events.ItemClickEvent;
import mx.events.ListEvent;
public class MyTree extends Tree
{
public function MyTree()
{
super();
}
private function tree_itemClick(evt:ListEvent):void {
var item:Object = Tree(evt.currentTarget).selectedItem;
if (dataDescriptor.isBranch(item)) {
expandItem(item, !isItemOpen(item), true);
}
}
override protected function createChildren():void{
super.createChildren();
addEventListener(ListEvent.ITEM_CLICK, tree_itemClick, true);
}
}
}