Sfat rapid Fila automată între TextFields folosind AS3

Acest sfat rapid vă va arăta cum să implementați o filă automată între câmpurile de text. Procedând astfel, se va pune accent pe următorul câmp de text definit atunci când numărul maxim de caractere a fost introdus în cel anterior. Haide să mergem!


Rezultatul final al rezultatelor

Să aruncăm o privire asupra rezultatului final pe care îl vom strădui:


Pasul 1: Prezentare succintă

O serie de elemente TextFields vor fi plasate pe scenă, precum și un buton. Utilizarea lungime proprietatea vom verifica numărul maxim de caractere permise în fiecare câmp și vom schimba TextField-ul activ folosind concentra proprietate. Butonul va fi ascuns în mod implicit și va fi dezvăluit când toate câmpurile de text sunt complete.


Pasul 2: Configurați fișierul dvs. Flash

Lansați Flash și creați un nou document Flash, setați dimensiunea scenei la 400x200px și rata de cadre la 24fps.


Pasul 3: Interfața

Aceasta este interfața pe care o vom folosi, include trei intrări TextFields și un buton. TextFields sunt numiți txt1, txt2 și txt3 de la stânga la dreapta și butonul este numit butonul OK.

Pentru ca codul să funcționeze, trebuie să setați Max Chars opțiune în Panoul Proprietăți din fiecare TextField, în acest exemplu aceste numere sunt 3, 3 și, respectiv, 4.

Refaceți interfața singură sau utilizați sursa FLA.


Pasul 4: ActionScript

Creați o nouă clasă ActionScript (Cmd + N), salvați fișierul ca Main.as și începeți să scrieți:

 pachet import flash.display.Sprite; import flash.events.KeyboardEvent; clasa publică principală se extinde Sprite funcția publică principală (): void okButton.visible = false; // Ascunde starea okButton stage.addEventListener (KeyboardEvent.KEY_UP, checkTextField); // Ascultă pentru apăsarea tastelor funcția privată autoTab (? Textfields): void // Utilizați restul argumentului pentru a include orice număr de câmpuri text var txtLen: int = textfields.length; // Declare lungimea câmpurilor de text utilizate pentru (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   

Acest cod verifică numărul maxim de caractere permise în fiecare câmp de text, aceste câmpuri sunt introduse în autoTab funcția ca parametri, atunci focalizarea se modifică dacă numărul maxim este atins. Dacă ultimul câmp de text din matricea parametrilor este finalizat, butonul de trimitere este dezvăluit.

Linia cheie este stage.focus = textfields [i + 1];.

Din nou, nu uitați să setați Max Chars opțiune în Panoul Proprietăți din TextField.


Pasul 5: Clasa de documente

Nu uitați să adăugați numele clasei la Clasă domeniu în Publica secțiunea din Proprietăți panou.


Concluzie

Încercați demo-ul și experimentați cu utilizarea acestei caracteristici!

Sper că ți-a plăcut acest tutorial, mulțumesc pentru lectură!

Cod