フレックスプロジェクトに取り組んでいます
マウスを使用していくつかのUI機能を提供しようとしています-マウスを介して達成する2つの異なるUIイベントがありますa)値の変更b)オブジェクトの削除
両方に十分なマウスクリックイベントがないようです。デフォルトのオプションがいくつかあるため、右クリックの使用を避けています(サインオフすると、これだけでなくプロジェクト全体に影響します)。値の変更にマウス クリックを使用しています。
何かご意見は?
フレックスプロジェクトに取り組んでいます
マウスを使用していくつかのUI機能を提供しようとしています-マウスを介して達成する2つの異なるUIイベントがありますa)値の変更b)オブジェクトの削除
両方に十分なマウスクリックイベントがないようです。デフォルトのオプションがいくつかあるため、右クリックの使用を避けています(サインオフすると、これだけでなくプロジェクト全体に影響します)。値の変更にマウス クリックを使用しています。
何かご意見は?
何を編集しているのか、何の値なのかなどを知らずに言い過ぎてはいけません。
一般的なイディオムは、たとえば、選択したアイテムの端に「X」アイコンを表示し、そのアイコンをクリックするだけで削除がトリガーされることです。
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 回クリックすると、シングル クリック ログイン、つまり trace("No") が呼び出されます。
2) ラベルをダブルクリックすると、トレース ("yes") が呼び出されます。
このコードが、Flex コンポーネントのシングル クリックとダブル クリックの処理に関する質問の答えになることを願っています。