2011-01-18 8 views
8

Stavo creando un'applicazione con AIR + Flex.Come rimanere a fuoco dopo aver premuto "alt"? (App Adobe AIR)

una caratteristica è come:

  • Quando Alt chiave è verso il basso, il cursore del mouse si trasforma B,
  • Quando Alt chiave è alto, il cursore del mouse ripristina a A.

Ma il problema è che ogni volta una versione Alt, il cursore del mouse tornerà al valore predefinito del sistema (forma a freccia) e sembra che lo stato attivo si trovi in ​​un punto esterno al palcoscenico.

che mi ricorda che, quando Alt è stato premuto in una finestra normale, barra dei menu sarà focalizzata.

Come posso interrompere questo comportamento predefinito?

p.s. Ho provato le seguenti modalità e il lavoro doesn `t:

  • 1) ascoltare evento KEY_DOWN/KEY_UP del palco, e aggiungere event.stopImmediatePropagation() nei gestori di eventi
  • 2) ascoltare KEY_DOWN/KEY_UP evento di fase, e aggiungere event.preventDefault() nei gestori di eventi
  • 3) ascoltare evento KEY_DOWN/KEY_UP del palco, e aggiungere this.setFocus() nei gestori di eventi. E callLater(this.setFocus) non funziona anche.
+3

Ciao Virgilio, ho fatto qualche prova me stesso e finito praticamente nello stesso punto che hai descritto sopra, i miei gestori di eventi vengono sparati, ma fermare la propagazione della manifestazione o il tentativo di evitare che il comportamento predefinito produca gli stessi risultati. Sembra che l'altKey sia supportato solo in Windows per gli eventi che stavo verificando, quindi questo potrebbe essere un problema quando arriva il momento di testare tra piattaforme, per questo motivo suggerisco di usare qualche altro tasto modificatore o altro battitura. – shaunhusain

+1

Mi sono anche imbattuto in questo nella documentazione che potrebbe portare a una risposta ma non ho visto nessun menu che descriva quello mostrato quando viene premuto il tasto alt: http://livedocs.adobe.com/flex/3/html /help.html?content=Menus_2.html – shaunhusain

+1

Questo potrebbe anche portare più vicino a una risposta al problema così come presentato: http://www.adobe.com/devnet/air/flex/quickstart/articles/custom_chrome.html sebbene questo sta discutendo la creazione di finestre di Chromeless ma ha anche alcune informazioni su come bloccare i comportamenti di default in NativeWindows. – shaunhusain

risposta

0

In caso di vittoria impossibile. Ma U può scrivere script shell/bash per attivare la tua app ed eseguirla da AIR. Vedi la classe NativeProcess.

0

Ascoltare per disattivare evento E poi non attivare

Problemi correlati