ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
フォーラム一覧   -   トピック一覧
   超ビギナー
     Treeのアイテム移動の制御
投稿するにはまず登録を

フラット表示 前のトピック | 次のトピック
投稿者 トピック
neworder
投稿日時: 2008-5-29 20:42
ご主人様
登録日: 2007-7-14
居住地: 東京
投稿: 176
Re: Treeのアイテム移動の制御
アイデアレベルですが、dragDrop イベントでチェックすればいいかと思います。
Tree タグのところで
dragDrop="dragDrop(event)" dragEnter="dragOver(event)" dragOver="dragOver(event)"
として、
import mx.controls.listClasses.IListItemRenderer;
import mx.events.DragEvent;
private function dragDrop(event:DragEvent):void
{
    if (isDropForbidden(event))
        event.preventDefault();
}
private function dragOver(event:DragEvent):void
{
    if (isDropForbidden(event))
    {
        var tree:Tree = event.currentTarget as Tree;
        tree.hideDropFeedback(event);
        event.preventDefault();
    }
}
private function isDropForbidden(event:DragEvent):Boolean
{
    var tree:Tree = event.currentTarget as Tree;
    var n:int = tree.calculateDropIndex(event);
    var renderer:IListItemRenderer = tree.indexToItemRenderer(n);
    if (renderer)
    {
        var xml:XML = renderer.data as XML;
        var parent:XML = xml.parent();
        if (parent && parent.@id == "node_0")
            return true;
    }
    return false;
}

これで親が node_0 となるような挿入が禁止されます。
実際にはいろいろ修正が必要かもしれません。
フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
   Treeのアイテム移動の制御 bibiru 2008-5-22 13:41
   » Re: Treeのアイテム移動の制御 neworder 2008-5-29 20:42

投稿するにはまず登録を