Dans cette astuce, nous allons créer une classe ActionScript statique et réutilisable qui produira un effet Typewriter avec une seule ligne. Continuer à lire!
Nous allons diviser une chaîne définie par l'utilisateur dans un tableau, puis ajouter les lettres résultantes à un Champ de texte
un par un en utilisant le Minuteur
classe.
Notre classe sera statique
, ce qui signifie qu'il n'a pas besoin d'être instancié en utilisant le Nouveau
mot-clé. Pour accéder à un membre de classe statique, utilisez le nom de la classe au lieu du nom d'une instance..
Créez un nouveau fichier ActionScript et écrivez le code suivant:
package import flash.text.TextField; import flash.utils.Timer; import flash.events.TimerEvent; public final class Typewriter / * Déclarez les variables et les méthodes en tant que static * / private static var chars: Array; // les caractères de la chaîne private static var tf: TextField; // champ de texte sur lequel la chaîne sera écrite private static var timer: Timer; // marque une pause entre chaque caractère privé static static var i: int = 0; // variable utilisée pour compter les caractères écrits fonction statique publique write (txt: String, txtField: TextField, time: Number): void chars = txt.split (""); // divise la chaîne en un tableau de caractères tf = txtField; // affecte tf au champ de texte transmis à la fonction timer = new Timer (time); // définition de l'heure en fonction du paramètre timer.addEventListener (TimerEvent.TIMER, writeChar); timer.start (); // commence à écrire fonction fonction statique privée writeChar (e: TimerEvent): void if (i < chars.length) tf.appendText(chars[i]); //writes a char every time the function is called i++; //next char if (i >= chars.length) // vérifie si la chaîne est complète timer.stop (); timer.removeEventListener (TimerEvent.TIMER, writeChar); // clear timer timer = null;
L'utilisation ne pourrait pas être plus facile - ajoutez simplement le Machine à écrire.as
classe dans votre dossier de projet et utilisez le code suivant:
importer une machine à écrire; Typewriter.write ('Texte à écrire', targetTextfield, 50);
Ça y est, testez votre film et vous verrez votre TextField utiliser l'effet Typewriter.
J'ai utilisé la classe dans cet exemple swf pour que vous puissiez voir l'effet:
Utilisez cette classe pour créer vos propres effets!
Merci pour la lecture. Si vous souhaitez une version plus avancée de cet effet à utiliser dans vos projets, consultez l'animation Lettre par lettre de Rasmus Wriedt Larsen..