Domanda

Sto lavorando su un progetto Flex

Cerco di fornire alcune funzionalità dell'interfaccia utente utilizzando il mouse-ho due eventi dell'interfaccia utente distinti da raggiungere con il mouse a) modificare il valore b) oggetto di eliminazione

Non mi sembra di avere eventi click del mouse sufficienti per entrambi. Sto evitando di usare il tasto destro del mouse in quanto ha alcune opzioni di default (la cui firma off interesserà l'intera progetto- non solo questo). Ho clic del mouse utilizzato per il cambiamento a valore come si usa il doppio clic come gli eventi single-click sembra avere invocato prima?

Qualche idea?

È stato utile?

Soluzione

        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" />  

Output: 1) Se un c'è un singolo clic del mouse sull'etichetta, il singolo click login cioè trace ( "No") viene richiamato

2) In caso di doppio clic sulla etichetta, la traccia ( "sì") viene richiamato.

spero che questo pezzo di codice risponde alla tua domanda sulla gestione di singolo e doppio click su componenti Flex.

Altri suggerimenti

Non posso dire troppo senza sapere che cosa si sta modificando, quali sono i valori, ecc

Un linguaggio comune è quello di mostrare l'icona "X", per esempio, sul bordo di un elemento selezionato, con gli scatti solo su quell'icona innescando eliminazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top