Utilizzando 2 eventi distinti mouse in flessione
-
24-10-2019 - |
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?
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.