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!
Laten we eens kijken naar het eindresultaat waar we naartoe zullen werken:
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.
Start Flash en maak een nieuw Flash-document, stel de stage in op 400x200 px en de framesnelheid op 24 fps.
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.
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.
Vergeet niet om de klassenaam toe te voegen aan de Klasse veld in de Publiceren deel van de eigenschappen paneel.
Probeer de demo en experimenteer met het gebruik van deze functie!
Ik hoop dat je deze tutorial leuk vond, bedankt voor het lezen!