左から右へドラッグ&ドロップしようとするときに、右がフォルダだったらば自動的に開きます。

This movie requires Flash Player 9

下からダウンロードしてください。
ダウンロード

ソースは、TreeDragDrop.mxml のファイルひとつです。

実装はおもったよりも簡単でした。
みそは、dragOverHandler(event:DragEvent)  の中で、現在どのアイテムの上にいるのかを見て、
そのアイテムで開けばいいというわけです。

今回、アイテムがXMLですので、子供の数でそこにドロップできるか決めていますが、
このitemのプロパティなんかで、フォルダかファイルかなどがわかれば、それで判断もできると思います。

[AS]
private function dragOverHandler(event:DragEvent):void{
var r:int = tree.calculateDropIndex(event);
tree.selectedIndex = r;
var node:XML = tree.selectedItem as XML;
if(node.children().length() > 0){
DragManager.showFeedback(DragManager.MOVE);
tree.expandItem(node,true,true);
}
else{
DragManager.showFeedback(DragManager.NONE);
}
}
[/AS]

追記:
最初、TreeItemRenderを継承してMouseOverでやろうとしましたが、なんかドラッグ&ドロップの状態では、
動きがぎこちなくなってしまいました。

関連記事

One Response to “flex:Treeで自動的にフォルダを展開させるには”

Leave a Reply

Spam protection by WP Captcha-Free

ソフトウェア&ライブラリ



ライブラリ
airxmail(en)
AIR版メール送受信ライブラリ
airxzip
AIR版ZIP圧縮・解凍ライブラリ
カレンダー
2009年4月
« 3月   5月 »
 12345
6789101112
13141516171819
20212223242526
27282930  

カスタム検索
RSS
Add to Google
カテゴリ
にほんブログ村 IT技術ブログへ