Snelle tip Auto-tab tussen tekstvelden met AS3

Deze snelle tip laat u zien hoe u een automatisch tabblad tussen tekstvelden implementeert. Als u dit doet, wordt de focus gelegd op het volgende gedefinieerde tekstveld wanneer het maximale aantal tekens in de vorige is ingevoerd. Laten we gaan!


Eindresultaat voorbeeld

Laten we eens kijken naar het eindresultaat waar we naartoe zullen werken:


Stap 1: Kort overzicht

Een reeks TextFields wordt op het podium geplaatst, evenals een knop. De ... gebruiken lengte property zullen we het maximumaantal tekens bekijken dat is toegestaan ​​in elk veld en het actieve TextField wijzigen met behulp van de focus eigendom. De knop wordt standaard verborgen en onthuld wanneer alle tekstvelden compleet zijn.


Stap 2: Stel uw Flash-bestand in

Start Flash en maak een nieuw Flash-document, stel de stage in op 400x200 px en de framesnelheid op 24 fps.


Stap 3: Interface

Dit is de interface die we gaan gebruiken, deze bevat drie Input TextFields en een knop. De TextFields zijn benoemd txt1, txt2 en txt3 van links naar rechts en de knop heeft de naam okButton.

Om de code te laten werken, moet u de Max Chars optie in de Eigenschappen paneel van elk TextField, in dit voorbeeld zijn deze nummers respectievelijk 3, 3 en 4.

Maak de interface zelf opnieuw of gebruik de bron-FLA.


Stap 4: ActionScript

Maak een nieuwe ActionScript-klasse (Cmd + N), sla het bestand op als Main.as en begin met schrijven:

 pakket import flash.display.Sprite; import flash.events.KeyboardEvent; public class Hoofd breidt uit Sprite public function Main (): void okButton.visible = false; // Verberg de okButton stage.addEventListener (KeyboardEvent.KEY_UP, checkTextField); // Luister naar toetsaanslagen privéfunctie autoTab (? Textfields): void // Gebruik het rest-argument om een ​​willekeurig aantal tekstvelden op te nemen var txtLen: int = textfields.length; // Verklaar de lengte van de gebruikte tekstvelden (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   

Deze code controleert het maximale aantal toegestane tekens in elk tekstveld, deze velden worden geïntroduceerd in de autoTab functie als parameters, dan verandert de focus als het maximale aantal is bereikt. Als het laatste tekstveld in de parameterarray is voltooid, wordt de knop Verzenden onthuld.

De belangrijkste regel is stage.focus = tekstvelden [i + 1];.

Nogmaals, vergeet niet om de Max Chars optie in de Eigenschappen paneel van het TextField.


Stap 5: Documentklasse

Vergeet niet om de klassenaam toe te voegen aan de Klasse veld in de Publiceren deel van de eigenschappen paneel.


Conclusie

Probeer de demo en experimenteer met het gebruik van deze functie!

Ik hoop dat je deze tutorial leuk vond, bedankt voor het lezen!