Flexで2つの異なるマウスイベントを使用します
-
24-10-2019 - |
質問
フレックスプロジェクトに取り組んでいます
マウスを使用してUI機能を提供したいと考えています。マウスを介して達成される2つの異なるUIイベントがありますa)変更値b)削除オブジェクト
両方に十分なMouseClickイベントがないようです。デフォルトのオプションがあるため、右クリックを使用することは避けています(この登録は、これだけでなくプロジェクト全体に影響します)。変更値に使用されるマウスクリックがあります。シングルクリックイベントが事前に呼び出されるように見えるため、DoubleClickを使用するにはどうすればよいですか?
何かご意見は?
解決
private var doubleClickOccurred:Boolean = false;
private var timer:Timer = new Timer(100, 1);
protected function application1_creationCompleteHandler(event:FlexEvent):void
{
myLabel.addEventListener(MouseEvent.CLICK, checkSingleOrDoubleClick);
myLabel.addEventListener(MouseEvent.DOUBLE_CLICK, checkSingleOrDoubleClick);
timer.addEventListener(TimerEvent.TIMER_COMPLETE, handleClick);
}
private function checkSingleOrDoubleClick(event:MouseEvent):void
{
if(event.target == myLabel && event.type == MouseEvent.DOUBLE_CLICK)
{
// set the flag and let the timer complete event
// take care of the click handling
doubleClickOccurred = true;
trace(" double clicked");
}
else if( event.type == MouseEvent.CLICK)
{
// start timer to wait till the double click event
// gets called
timer.start();
trace("Starting timer");
}
}
private function handleClick(event:Event):void
{
if(doubleClickOccurred)
{
// handle double click event
trace("Yes");
}
else
{
// handle single click
trace("No");
}
// reset flag for capturing future events
doubleClickOccurred = false;
}
]]>
</fx:Script>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<s:Label id="myLabel" text="Click Me" doubleClickEnabled="true" />
出力:1)ラベルを1回クリックした場合、シングルクリックログインIEトレース( "no")が呼び出されます
2)ラベルをダブルクリックした場合、トレース(「はい」)が呼び出されます。
このコードが、シングルの処理とフレックスコンポーネントをダブルクリックすることについての質問に答えることを願っています。
他のヒント
あなたが編集しているもの、価値が何であるかなどを知らなければ、あまり言うことはできません。
一般的なイディオムは、選択したアイテムの端に「x」アイコンを表示することであり、そのアイコンのみのクリックが削除をトリガーします。
所属していません StackOverflow