0


0

flex tree itemclickイベント、機能しません

再利用可能なフレックスツリーコンポーネントを作成しています。 そして、itemclick関数に固執したいと思います。 そのため、ユーザーがツリーのブランチのいずれかをクリックすると。 ブランチが展開されます。 私の問題は、リスナー関数を起動する方法がわからないことです。 私がやりたいのは、as3で完全にツリーを作成することです。 (mxmlなし)。 通常、mxmlでツリーのitemClickを設定します。 しかし、私は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);
        }

    }
}

1 Answer


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

}
}