Questo suggerimento rapido ti mostrerà come implementare una scheda automatica tra i campi di testo. In questo modo si concentrerà sul prossimo campo di testo definito quando il numero massimo di caratteri è stato introdotto nel precedente. Muoviamoci!
Diamo un'occhiata al risultato finale su cui lavoreremo:
Una serie di campi di testo verrà posizionata sul palco, oltre a un pulsante. Usando il lunghezza
proprietà controlleremo il numero massimo di caratteri consentiti in ogni campo e cambieremo il campo di testo attivo usando il messa a fuoco
proprietà. Il pulsante sarà nascosto per impostazione predefinita e rivelato quando tutti i campi di testo sono completi.
Avvia Flash e crea un nuovo documento Flash, imposta le dimensioni dello stage su 400x200px e la frequenza fotogrammi su 24 fps.
Questa è l'interfaccia che useremo, include tre campi di testo di input e un pulsante. I campi di testo sono nominati txt1, txt2 e txt3 da sinistra a destra e il pulsante è denominato okButton.
Affinché il codice funzioni, è necessario impostare il Carattere massimo opzione nel Pannello Proprietà di ogni campo di testo, in questo esempio questi numeri sono 3, 3 e 4, rispettivamente.
Ricrea l'interfaccia tu stesso o usa l'FLA di origine.
Creare una nuova classe ActionScript (Cmd + N), salvare il file come Main.as e inizia a scrivere:
pacchetto import flash.display.Sprite; import flash.events.KeyboardEvent; public class Main extends Sprite public function Main (): void okButton.visible = false; // Nascondi okButton stage.addEventListener (KeyboardEvent.KEY_UP, checkTextField); // Listen for key presses private function autoTab (? Textfields): void // Usa l'argomento resto per includere qualsiasi numero di campi di testo var txtLen: int = textfields.length; // Dichiara la lunghezza dei campi di testo usati per (var i: int = 0; i < txtLen; i++) if (textfields[i].length == textfields[i].maxChars) stage.focus = textfields[i + 1]; //Change focus to next textfield in the array if (textfields[txtLen - 1].length == textfields[txtLen - 1].maxChars) //checks for the last textfield in the array okButton.visible = true; //show the button private function checkTextField(e:KeyboardEvent):void autoTab(txt1, txt2, txt3); //executes the function every key press
Questo codice controlla il numero massimo di caratteri consentiti in ogni campo di testo, questi campi vengono introdotti nel autoTab
funzionano come parametri, quindi lo stato attivo cambia se viene raggiunto il numero massimo. Se l'ultimo campo di testo nella serie di parametri è completato, viene rivelato il pulsante di invio.
La linea chiave è stage.focus = campi di testo [i + 1];
.
Ancora una volta, non dimenticare di impostare il Carattere massimo opzione nel Pannello Proprietà del campo di testo.
Ricorda di aggiungere il nome della classe al Classe campo nel Pubblicare sezione del Proprietà pannello.
Prova la demo e sperimenta gli usi di questa funzione!
Spero che questo tutorial ti sia piaciuto, grazie per la lettura!