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!
Să aruncăm o privire asupra rezultatului final pe care îl vom strădui:
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.
Lansați Flash și creați un nou document Flash, setați dimensiunea scenei la 400x200px și rata de cadre la 24fps.
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.
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.
Nu uitați să adăugați numele clasei la Clasă domeniu în Publica secțiunea din Proprietăți panou.
Încercați demo-ul și experimentați cu utilizarea acestei caracteristici!
Sper că ți-a plăcut acest tutorial, mulțumesc pentru lectură!