0

フレックスプロジェクトに取り組んでいます

マウスを使用していくつかのUI機能を提供しようとしています-マウスを介して達成する2つの異なるUIイベントがありますa)値の変更b)オブジェクトの削除

両方に十分なマウスクリックイベントがないようです。デフォルトのオプションがいくつかあるため、右クリックの使用を避けています(サインオフすると、これだけでなくプロジェクト全体に影響します)。値の変更にマウス クリックを使用しています。

何かご意見は?

4

2 に答える 2

0

何を編集しているのか、何の値なのかなどを知らずに言い過ぎてはいけません。

一般的なイディオムは、たとえば、選択したアイテムの端に「X」アイコンを表示し、そのアイコンをクリックするだけで削除がトリガーされることです。

于 2011-03-14T19:16:29.323 に答える
0

        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 コンポーネントのシングル クリックとダブル クリックの処理に関する質問の答えになることを願っています。

于 2011-03-14T20:27:48.793 に答える