Astuce Tabulation automatique entre TextFields avec AS3

Cette astuce vous montrera comment implémenter un onglet automatique entre les champs de texte. Cela activera le prochain champ de texte défini lorsque le nombre maximum de caractères aura été introduit dans le précédent. Allons-y!


Aperçu du résultat final

Jetons un coup d'œil au résultat final sur lequel nous allons travailler:


Étape 1: bref aperçu

Une série de TextFields seront placés sur la scène, ainsi qu'un bouton. En utilisant le longueur propriété, nous allons vérifier le nombre maximum de caractères autorisés dans chaque champ et changer le champ TextField actif en utilisant le concentrer propriété. Le bouton sera caché par défaut et révélé lorsque tous les champs de texte seront complétés.


Étape 2: Configurez votre fichier Flash

Lancez Flash et créez un nouveau document Flash, réglez la taille de la scène sur 400x200px et la cadence sur 24 images par seconde..


Étape 3: interface

C'est l'interface que nous allons utiliser. Elle comprend trois champs de saisie de texte et un bouton. Les TextFields sont nommés txt1, txt2 et txt3 de gauche à droite et le bouton est nommé okButton.

Pour que le code fonctionne, vous devez définir le paramètre Max Chars option dans le Panneau de propriétés de chaque TextField, dans cet exemple, ces nombres sont respectivement 3, 3 et 4.

Recréez vous-même l'interface ou utilisez le fichier FLA source.


Étape 4: ActionScript

Créez une nouvelle classe ActionScript (Cmd + N), enregistrez le fichier sous Main.as et commencez à écrire:

 package import flash.display.Sprite; import flash.events.KeyboardEvent; classe publique Main étend Sprite fonction publique Main (): void okButton.visible = false; // Cache l'okButton stage.addEventListener (KeyboardEvent.KEY_UP, checkTextField); // Ecoute des appuis sur les touches fonction privée autoTab (? Textfields): void // Utilisez l'argument reste pour inclure un nombre quelconque de champs de texte var txtLen: int = textfields.length; // Déclarer la longueur des champs de texte utilisés pour (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   

Ce code vérifie le nombre maximum de caractères autorisés dans chaque champ de texte, ces champs sont introduits dans autoTab fonctionnent comme des paramètres, la mise au point change si le nombre maximum est atteint. Si le dernier champ de texte du tableau de paramètres est terminé, le bouton de soumission est révélé..

La ligne clé est stage.focus = textfields [i + 1];.

Encore une fois, n'oubliez pas de définir le Max Chars option dans le Panneau de propriétés du champ de texte.


Étape 5: Classe de document

N'oubliez pas d'ajouter le nom de la classe à la Classe champ dans le Publier section de la Propriétés panneau.


Conclusion

Essayez la démo et expérimentez les utilisations de cette fonctionnalité!

J'espère que vous avez aimé ce tutoriel, merci d'avoir lu!