Domanda

Sono nuovo di Flex, anche se non nuovo di programmazione. Voglio scrivere un gestore di eventi generico che verrà chiamato da tutte le mie caselle di input di testo quando ricevono lo stato attivo. Quando hanno lo stato attivo, voglio cambiare il colore della casella di input del testo. Quando perdono la messa a fuoco, voglio ripristinare "inattivo". profilo colore. Potrei scrivere un gestore di eventi ActionScript per ogni casella di input di testo, ma sappiamo tutti che è zoppo. : o) Ciò di cui ho bisogno, quindi, è un modo per accedere all'oggetto che chiama il gestore eventi.

In Delphi, avrei scritto una funzione che passa nell'oggetto Sender, permettendomi di accedere alle proprietà dell'oggetto chiamante. Immagino che ActionScript / Flex abbia un'architettura completamente diversa, motivo per cui ho difficoltà a farlo.

Grazie in anticipo!

È stato utile?

Soluzione

Dovresti sottoclassare TextInput e gestire gli eventi di focus all'interno. Penso che questo sarebbe il modo più semplice per ottenere ciò che stai cercando senza avere un codice complesso.

Altri suggerimenti

Spero di capire cosa stai chiedendo ... stai parlando della delega degli eventi?

Questo ha funzionato per me:

// 'focusOut' for blur
stage.addEventListener('focusIn', function(e:Event):void {
    // The focused control is e.target
});

Se vuoi cambiare l'aspetto della casella di input focalizzata, puoi farlo impostando la proprietà focusSkin . Se vuoi che ciò accada a livello globale, puoi inserire una dichiarazione di stile nel tuo file CSS.

In questo esempio CSS sto sostituendo il focusSkin predefinito ( mx.skins.halo.HaloFocusRect ) con un file PNG incorporato.

TextInput {
  focusSkin: Embed(source="focus.png");
}

TextInput ha alcune proprietà per alterare l'aspetto del focus, come cambiare l'opacità del focus skin (proprietà focusAlpha ). Controlla la Documentazione di input di testo per ulteriori informazioni.

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