Schnelltipp Auto-Tab zwischen Textfeldern mit AS3

Dieser Schnelltipp zeigt Ihnen, wie Sie eine automatische Tabulatortaste zwischen Textfeldern implementieren. Dadurch wird der Fokus auf das nächste definierte Textfeld gesetzt, wenn die maximale Anzahl von Zeichen in das vorherige eingefügt wurde. Lasst uns anfangen!


Endergebnisvorschau

Werfen wir einen Blick auf das Endergebnis, auf das wir hinarbeiten:


Schritt 1: Kurzübersicht

Eine Reihe von Textfeldern sowie eine Schaltfläche werden auf der Bühne platziert. Verwendung der Länge Diese Eigenschaft prüft die maximal zulässige Anzahl von Zeichen in jedem Feld und ändert das aktive TextField mit Fokus Eigentum. Die Schaltfläche wird standardmäßig ausgeblendet und angezeigt, wenn alle Textfelder vollständig sind.


Schritt 2: Richten Sie Ihre Flash-Datei ein

Starten Sie Flash und erstellen Sie ein neues Flash-Dokument. Stellen Sie die Bühnengröße auf 400x200px und die Bildrate auf 24fps ein.


Schritt 3: Schnittstelle

Dies ist die Schnittstelle, die wir verwenden werden. Sie enthält drei Eingabe-Textfelder und eine Schaltfläche. Die TextFields werden benannt txt1, txt2 und txt3 von links nach rechts und die Schaltfläche wird benannt okButton.

Damit der Code funktioniert, müssen Sie die Einstellung vornehmen Max Zeichen Option in der Eigenschaftenbereich Von jedem Textfeld sind in diesem Beispiel diese Zahlen 3, 3 bzw. 4.

Erstellen Sie die Schnittstelle selbst neu oder verwenden Sie die Quell-FLA.


Schritt 4: ActionScript

Erstellen Sie eine neue ActionScript-Klasse (Cmd + N) und speichern Sie die Datei als Main.as und fang an zu schreiben:

 package import flash.display.Sprite; import flash.events.KeyboardEvent; public class Main erweitert Sprite public function Main (): void okButton.visible = false; // das okButton ausblenden stage.addEventListener (KeyboardEvent.KEY_UP, checkTextField); // Auf Tastendruck hören private Funktion autoTab (? Textfelder): void // Verwenden Sie das rest-Argument, um eine beliebige Anzahl von Textfeldern einzuschließen var txtLen: int = textfields.length; // Die Länge der verwendeten Textfelder deklarieren (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   

Dieser Code prüft die maximal zulässige Anzahl von Zeichen in jedem Textfeld. Diese Felder werden in das Textfeld eingefügt autoTab Funktion als Parameter, dann ändert sich der Fokus, wenn die maximale Anzahl erreicht ist. Wenn das letzte Textfeld im Parameterfeld ausgefüllt ist, wird die Schaltfläche "Senden" angezeigt.

Die Schlüsselzeile lautet stage.focus = Textfelder [i + 1];.

Vergessen Sie auch nicht, das einzustellen Max Zeichen Option in der Eigenschaftenbereich des Textfeldes.


Schritt 5: Dokumentenklasse

Vergessen Sie nicht, den Klassennamen dem hinzuzufügen Klasse Feld in der Veröffentlichen Abschnitt der Eigenschaften Panel.


Fazit

Probieren Sie die Demo aus und experimentieren Sie mit der Verwendung dieser Funktion!

Ich hoffe, Ihnen hat dieses Tutorial gefallen, vielen Dank für das Lesen!