Treeコンポーネントで右クリックしてもアイテムを選択できる
Treeコンポーネントでコンテキストメニューで右クリック機能をつけても、
右クリックした場所のアイテムを選択できず、
少し困ったことがありました。
一応、解決策をあげておきます。
TreeコンポーネントのイベントでitemRollOverがあるので、
それでロールオーバーされているアイテムを保持しておき、
右クリックしたときに、
その保持したアイテムに選択アイテムを変更する。
といった手順で右クリックでアイテムを選択できるようにしました。
ソースを載せておきます。
<?xml version="1.0" encoding="utf-8"?> <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml"> <mx:XMLList id="list"> <treeList label="test1"> <treeList label="test1-1"/> <treeList label="test1-2"/> <treeList label="test1-3"/> <treeList label="test1-4"/> </treeList> <treeList label="test2"> <treeList label="test2-1"/> <treeList label="test2-2"/> <treeList label="test2-3"/> <treeList label="test2-4"/> </treeList> </mx:XMLList> <mx:Script> <![CDATA[ import mx.events.ListEvent; private var rollOverIndex:int = -1; private function onRightMouseDown(event:MouseEvent):void { tree.selectedIndex = rollOverIndex; } private function onItemRollOver(event:ListEvent):void { rollOverIndex = event.rowIndex; } ]]> </mx:Script> <mx:Tree id="tree" width="200" height="100%" dataProvider="{list}" labelField="@label" rightMouseDown="onRightMouseDown(event)" itemRollOver="onItemRollOver(event)"/> </mx:WindowedApplication>