我正在创建一个可重用的flex树组件。我想坚持使用itemclick功能。这样当用户点击其中一个树的分支上的任何位置时。分支扩大。 我的问题是我不知道如何才能触发侦听器功能。 我想要做的是完全在as3中创建树。 (没有mxml)。 通常我在mxml中设置itemClick on tree。但我想在as3中这样做。 我的组件中有更多的功能,但我删除了它们,以便更容易阅读。
任何人都可以帮我解决这个问题吗?我想如果我覆盖createChilderen函数并在那里添加eventlistener,它会起作用。但没有运气。
这是我的代码;
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);
}
}
}
答案 0 :(得分:2)
package
{
import mx.controls.Tree;
import mx.events.ListEvent;
public class MyTree extends Tree
{
public function MyTree()
{
super();
addEventListener(ListEvent.ITEM_CLICK, itemClickHandler);
}
private function itemClickHandler(event:ListEvent):void
{
trace("Success");
}
}
}