Snabbtips Automatisk flik mellan TextFields med AS3

Den här snabba tipsen visar hur du implementerar en automatisk flik mellan textfält. Om du gör så ställer du in fokus på nästa definierade textfält när det maximala antalet tecken har införts i det föregående. Nu går vi!


Slutresultatförhandsvisning

Låt oss ta en titt på det slutliga resultatet vi ska arbeta för:


Steg 1: Kortfattad översikt

En serie TextFields placeras på scenen, liksom på en knapp. Använda längd egenskapen kontrollerar vi det maximala antalet tillåtna tecken i varje fält och ändrar den aktiva TextField med hjälp av fokus fast egendom. Knappen kommer att döljas som standard och avslöjas när alla textfält är färdiga.


Steg 2: Ställ in din Flash-fil

Starta Flash och skapa ett nytt Flash-dokument, sätt scenstorleken till 400x200px och bildhastigheten till 24fps.


Steg 3: Gränssnitt

Detta är gränssnittet vi ska använda, det innehåller tre Input TextFields och en knapp. TextFields heter txt1, txt2 och txt3 från vänster till höger och knappen heter OK knappen.

För att koden ska fungera måste du ställa in Max Chars alternativet i Egenskaper Panel av varje TextField, i detta exempel är dessa siffror 3, 3 och 4.

Återskapa gränssnittet själv, eller använd källan FLA.


Steg 4: ActionScript

Skapa en ny ActionScript-klass (Cmd + N), spara filen som Main.as och börja skriva:

 paket import flash.display.Sprite; importera flash.events.KeyboardEvent; public class Main sträcker Sprite public function Main (): void okButton.visible = false; // Dölj okButton stage.addEventListener (KeyboardEvent.KEY_UP, checkTextField); // Lyssna på knapptryckningar privat funktion autoTab (? Textfält): void // Använd resten argumentet för att inkludera ett antal textfält var txtLen: int = textfields.length; // Förklara längden på de textfält som används för (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   

Denna kod kontrollerar det maximala antalet tillåtna tecken i varje textfält, dessa fält introduceras i autoTab fungerar som parametrar, då ändras fokuseringen om maxtalet uppnås. Om det sista textfältet i parametervärdena är klart visas knappen Skicka.

Nyckellinjen är stage.focus = textfält [i + 1];.

Återigen, glöm inte att ställa in Max Chars alternativet i Egenskaper Panel av TextField.


Steg 5: Dokumentklass

Kom ihåg att lägga till klassnamnet till Klass fält i Publicera del av Egenskaper panel.


Slutsats

Prova demo och experimentera med användningen av den här funktionen!

Jag hoppas att du gillade den här handledningen, tack för att du läste!