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!
Werfen wir einen Blick auf das Endergebnis, auf das wir hinarbeiten:
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.
Starten Sie Flash und erstellen Sie ein neues Flash-Dokument. Stellen Sie die Bühnengröße auf 400x200px und die Bildrate auf 24fps ein.
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.
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.
Vergessen Sie nicht, den Klassennamen dem hinzuzufügen Klasse Feld in der Veröffentlichen Abschnitt der Eigenschaften Panel.
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!