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!
Jetons un coup d'œil au résultat final sur lequel nous allons travailler:
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.
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..
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.
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.
N'oubliez pas d'ajouter le nom de la classe à la Classe champ dans le Publier section de la Propriétés panneau.
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!