Développer un jeu est une compétence indispensable si vous êtes un développeur Flash, il exploite de nombreuses propriétés et méthodes ActionScript différentes, sans compter que vous aurez beaucoup de plaisir à faire cela! Dans ce didacticiel, je vais vous montrer comment créer un jeu avancé Hangman à l'aide d'ActionScript 3.0. Jouons!
Au cours de ce tutoriel Premium, je vais vous expliquer le processus de développement de jeux, de la conception d'interface utilisateur graphique à l'aide d'outils Flash et d'un peu de Photoshop à la partie code utilisant la puissance d'ActionScript 3..
Ce sont les éléments de l'interface utilisateur graphique que nous allons créer:
Créez un nouveau fichier Flash et définissez ses dimensions sur 320x480 px.
Sélectionnez l'outil Texte (T), puis choisissez une police de style dessin animé. J'ai utilisé GoodDog 86 pt.
Écrivez "Pendu +" et séparez (Cmd + B) le texte pour ajouter une couleur de dégradé.
Sélectionnez les graphiques et ouvrez le panneau de couleur, choisissez Dégradé linéaire et utilisez ces couleurs: # FBA31E, # FECB56.
Utilisez l'outil de transformation du dégradé pour faire pivoter le dégradé et obtenir une couleur comme indiqué dans l'image..
Répétez cette procédure dans le "+" en utilisant ces couleurs: # 831000, # A91101.
Convertissez le tout en un MovieClip et ajoutez un filtre Ombre portée avec les valeurs suivantes:
Vous allez vous retrouver avec quelque chose comme ça:
Créons le fond.
Ouvrez Photoshop et créez un nouveau fichier (320x480).
Sélectionnez l'outil Dégradé (T) et ajoutez un arrière-plan radial brun (# 4E4236, # 382F26) en partant du centre vers l'un des bords..
Il est maintenant temps d'ajouter un filtre de bruit pour obtenir un fond texturé.
Dans le menu, sélectionnez Filtre> Bruit> Ajouter du bruit et utilisez les valeurs suivantes:
Enregistrez votre image au format png-24 à l'aide de l'option "Enregistrer pour le Web et les périphériques" du menu Fichier..
Votre fond devrait ressembler à ceci:
Retournez en Flash, importez (Cmd + R) votre arrière-plan et centrez-le.
Utilisez l'option Arranger> Envoyer à l'arrière du menu contextuel (clic droit) pour envoyer l'arrière-plan vers le bas et afficher votre logo créé précédemment..
Sélectionnez l'outil Rectangle Primitive et créez un rectangle de 200 x 50 px avec le même dégradé jaune qu'avant (# FBA31E, # FECB56)..
Accédez à Options de rectangle dans le panneau Propriétés et définissez le rayon de l'angle sur 8,00..
Convertissez le dessin en MovieClip et ajoutez le filtre suivant:
Sélectionnez l'outil Texte, créez un nouveau texte statique et écrivez "Nouvelle partie". J'ai utilisé ce format: Myriad Pro Semibold, 24 pt, # 831000.
Pour créer un effet de lettre de presse, dupliquez (Cmd + D) le champ de texte et déplacez-le d'un pixel vers le bas. Modifiez la couleur du texte en # FDDA8A..
Convertissez-le en MovieClip et centrez-le sur la scène. Définissez son nom d'instance sur "newGame".
Répétez ce processus avec deux autres boutons; Options et à propos. N'oubliez pas de changer les noms d'instance.
Convertissez ce que vous avez jusqu’à présent en un MovieClip, nommez-le "menuScreen" et placez-le temporairement à l’écart de la scène..
C'est l'interface du jeu actuel, où vous interagissez avec le clavier pour deviner le mot caché.
Comme vous pouvez le constater, nous utilisons le même fond, dupliquez-le et centrez-le sur la scène..
Sélectionnez l'outil Rectangle Primitive, modifiez le rayon de l'angle sur 10 et tracez un rectangle de 260x250 px. Ajouter un arrière-plan radial (# FBEE84, # FDF9B2).
Pour créer les lignes, utilisez l’outil Rectangle et tracez un rectangle 260x1 px de couleur # C6C970..
Dupliquez la ligne (Cmd + D) et placez-la de 10 pixels vers le bas, répétez cette opération jusqu'à obtenir le résultat suivant:
Pour les lignes latérales, créez un rectangle 1x250 px, # 99832E et placez-le à 20 pixels du bord, dupliquez-le et placez le nouveau à 2 pixels de l'original..
Convertissez-le en MovieClip, dupliquez-le, envoyez-le à l'arrière et placez-le 5 px plus bas. Utilisez le même filtre de bouton.
Nous allons maintenant donner un titre au cahier; ce texte changera en fonction de la catégorie sélectionnée dans les options.
Sélectionnez l'outil Texte, créez un champ de texte dynamique 236x25 px et écrivez du texte comme guide. Le format est le feutre de marqueur, 18 points, # 663622.
Utilisez la technique de Letterpres que nous avons utilisée précédemment pour ajouter des détails. Les noms d'instance sont "categoryText" et "categoryLP" pour le champ Letterpress..
Pour tracer le bourreau, nous tromperons un peu, car Flash ne contient ni pinceau ni objet similaire, nous utilisons une police pour dessiner un style crayon..
J'ai utilisé des caractères de la police LeviCrayola pour dessiner ceci:
Convertissez chaque partie en MovieClip et définissez leurs noms d'occurrence de la manière suivante: tête, corps, leftArm, rightArm, leftLeg, rightLeg.
Placez les pièces du pendu au centre du cahier et passez à l'étape suivante..
La saisie de l’utilisateur sera gérée par un clavier dans l’étape qui placera la touche enfoncée dans l’écran caché.
Sélectionnez l'outil Rectangle Primitive et tracez un rectangle de 26x38 px avec l'arrière-plan précédemment jaune, ajoutez un rayon de coin de 5..
Convertissez-le en MovieClip et ajoutez le filtre de bouton.
Ajoutez la lettre correspondante et utilisez la technique de typographie pour créer un bouton plus esthétique. Le format est Myriad Pro Semibold, 23 pt, noir.
Convertissez les 2 éléments en MovieClip et nommez-le comme la lettre qu'il représente dans UpperCase..
Répétez cette étape avec toutes les lettres, n'oubliez pas de définir le nom d'instance correct..
Nous allons également créer un MovieClip qui apparaîtra au-dessus de la touche lorsqu'il est pressé à l'aide du même rectangle créé pour la clé.
Copiez et collez le rectangle et changez sa couleur en blanc, alpha 30%, cochez la case "Exporter pour ActionScript" et nommez-le "Inactif"..
Un son sera également joué quand une touche est enfoncée.
Vous pouvez trouver tous les types de sons, y compris les boutons, dans AudioJungle, lorsque vous trouvez un son qui vous convient, importez-le (Cmd + R) et dans le panneau de la bibliothèque, cliquez dessus avec le bouton droit de la souris et sélectionnez "Propriétés", puis cochez la case "Exporter pour ActionScript". et écrivez ButtonSound en tant que classe.
La touche Retour effacera les données du jeu et amènera l'utilisateur à l'écran de menu..
Créez une clé en suivant les mêmes étapes que le clavier, convertissez-la en MovieClip et nommez-la "retour"..
La vue Options s’affiche lorsque l’utilisateur clique sur le bouton Options dans l’écran Menu. Il affiche des informations sur quelques options pour le jeu..
Il devrait être plus facile de créer cette vue car nous avons déjà tous les graphiques et les arrière-plans.
L'option Catégorie, comme son nom l'indique, décrit le type de mots qui seront affichés lors de la lecture. Vous pouvez utiliser un nombre illimité de catégories, nous verrons cela plus tard dans le code.
L'option Victoire est le nombre de mots que vous devez deviner correctement pour déclarer le jeu gagné..
L'option Vies est le nombre de mauvaises réponses que vous pouvez faire avant de perdre la partie..
Cette vue comporte 6 TextFields, ceux de gauche étant statiques et formatés de la manière suivante: Marker Felt Thin, 19 pt, # 673723.
Les bons sont dynamiques et affichés comme ceci: Helvetica Regular, 15 pt, # 673723. (ajouter des occurrences dans l'image)
Le bouton précédent amène l'utilisateur à l'écran de menu.
Créez un TextField statique avec le même format que ceux ci-dessus et modifiez sa taille en 16 points..
Convertissez-le en bouton, nommez-le "retour".
Le bouton Plus changera les valeurs des options.
Créez un cercle blanc de 16x16 px à l'aide de l'outil Ovale (O).
Créez un autre cercle, cette fois 12x12, # 673723 et centrez-le.
Créez un rectangle haut de 2 pixels de large et 5 pixels de haut, dupliquez-le, faites pivoter les -45 degrés et séparez-le (Cmd + B) pour les faire se croiser, supprimez la zone non datée pour former une flèche et centrez.
Convertissez-le en MovieClip et ajoutez le filtre suivant:
Dupliquez et placez les boutons comme indiqué à l'étape 11 et nommez-les: "chatButton", "vicButton" et "livesButton"..
Tout convertir en MovieClip, cochez la case "Exporter pour ActionScript" et nommez-le "OptionsView". Vous pouvez supprimer le symbole de la scène maintenant.
La vue À propos présente des informations sur le créateur, la société et la version de l'application..
Ajustez le logo du pendu à 121x30,6 px et centrez-le.
Créez et centrez un champ de texte statique au format suivant: Helvetica Neue Regular, 15 points, #EFEFEF, puis ajoutez le texte affiché dans l'image..
Convertissez le tout en MovieClip, cochez la case "Exporter pour ActionScript" et nommez-le "AboutView". Vous pouvez supprimer le symbole de la scène maintenant.
Nous allons afficher un message lorsque vous gagnez ou perdez, pour cela nous allons utiliser cette vue Alerte.
Créez un rectangle 320x240 px et utilisez ce dégradé radial: # 000000 alpha 0, # 000000 alpha 50.
Créez ensuite un rectangle blanc de 260 x 100 pixels avec un rayon de 20 pixels et placez-le au milieu du fond noir..
Dupliquez le rectangle et faites-le 256x96 px, # FCB73A alpha 90.
Créez un champ de texte dynamique 240x23 px et nommez-le "titre". Appuyez sur le bouton "Aligner au centre" dans le panneau Paragraphe et utilisez la technique de typographie en déplaçant cette fois le champ de texte dupliqué vers le haut. Le format est Helvetica Bold 19 pt, blanc.
Utilisez un autre Dynamic TextField avec ce format: Helvetica Regular 15 pt, blanc. Placez-le au centre et utilisez l'option Aligner au centre.
Nommez-le "contenu" et ajoutez du texte aux champs comme guide.
Tout convertir en MovieClip, cochez la case "Exporter pour ActionScript" et nommez-le "AlertView".
Replacez le MenuScreen dans la scène et centrez-le. Il devrait être au-dessus des graphismes du jeu.
Il est temps de passer à ActionScript. Créez un nouveau fichier ActionScript et enregistrez-le sous le nom Main.as dans le dossier des classes..
classes de package
Le mot clé package vous permet d'organiser votre code en groupes pouvant être importés par d'autres scripts. Il est recommandé de les nommer en commençant par une lettre minuscule et d'utiliser intercaps pour les mots suivants, par exemple: mes classes.
Si vous ne souhaitez pas regrouper vos fichiers dans un package ou si vous n'avez qu'une seule classe, vous pouvez l'utiliser directement à partir de votre dossier source, mais l'idée est d'être organisé.
Ce sont les cours obligatoires. Pour une description plus détaillée de chaque classe, reportez-vous à l'aide de Flash (F1)..
import flash.display.Sprite; import flash.net.URLLoader; import flash.net.URLRequest; import flash.text.TextFormat; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.events.MouseEvent; import flash.events.Event; / * Classes d'importation pour les animations * / import fl.transitions.Tween; import fl.transitions.easing. *; import fl.transitions.TweenEvent;
le s'étend mot-clé définit une classe qui est une sous-classe d'une autre classe. La sous-classe hérite de toutes les méthodes, propriétés et fonctions, ainsi nous pouvons les utiliser dans notre classe.
classe publique HangmanPlus étend Sprite
Dans cet exemple, la classe HangmanPlus hérite de toutes les méthodes et propriétés de la classe Sprite..
Il y a beaucoup de variables dans ce jeu, car beaucoup de choses peuvent varier. Vous trouverez tout ce qui est expliqué dans les commentaires.
/ * catégories, la fonction de chargement chargera un fichier texte en utilisant les noms de ce tableau si vous voulez ajouter une catégorie, ajoutez simplement le fichier texte au répertoire où se trouve Hangman + .swf et le nom du fichier dans le tableau * / catégories de variables privées: Array = new Array ("Fruits", "Animaux", "Sports"); private var category: int = 0; // Cette variable sera modifiée dans les Options, lorsque l'utilisateur cliquera sur le bouton Plus 1 sera ajouté, puis utilisé dans le tableau pour choisir la catégorie correcte private var correctLetters: int = 0; // Les lettres correctes devinées, il sera comparé à la longueur du tableau de lettres pour vérifier si le mot est complet varvar privé: int = 6; // le nombre de tentatives (tête, corps, deux bras, deux jambes) private var btnSnd: ButtonSound = new ButtonSound (); // Le son qui sera joué lorsqu'un bouton est enfoncé private var inactive: Inactive; // Le clip que nous utiliserons pour bloquer les touches déjà enfoncées private var icontainer: Array = new Array () ; // Un tableau pour stocker les clips inactifs pour la suppression effective des clés privées var: int = 0; // Une variable pour compter les clés déjà inactives, cette var indique le nombre de "icontainer" pour supprimer les variables privées index: int ; // Stocke la valeur de la méthode String.search, utilisée pour rechercher la touche enfoncée dans le mot hidden var var private: Arr ay; // Le tableau des noms de boutons, utilisé pour ajouter facilement tous les écouteurs privés. var txtLoader = new URLLoader (); // Ceci chargera le fichier texte spécifié privé var allWords: String; // Chaîne contenant tous les mots contenus dans le fichier texte private var allWordsArray: Array = new Array (); // contient la variable allWords, séparée par mot private var currentWords: String; // le (s) mot (s) actuel (s) à deviner. (); // TextFormat private var us: Underscore; // Le clip de soulignement private var usContainer: Sprite; // Un conteneur pour les underscores private var letters: Array; // Les lettres du mot actuel private var tf: TextField; // TextField private var tfCont: Sprite; // contient les champs de texte private var tfs: Array = new Array (); Stocke les champs de texte utilisés pour les supprimer. Var tween privé: Tween; // Tween, pour l'animation espaces privés var: int = 0; // stocke les espaces dans le (s) mot (s) en cours private var arrayIndex: int; // stocke les mots qui n'ont pas été utilisés private var opt ions: OptionsView; // La vue des options private clip var about: AboutView; alerte var privée: AlertView; private var correct: int = 0; // Les mots corrects contre var privé échouent: int = 0; // échec contre victoire var privée: int = 3; // victoires par défaut pour gagner des vies privées var: int = 3; // Valeur par défaut vie privée var alertIsOnStage: Boolean = false; // True si AlertView est en phase
Le constructeur est une fonction qui s'exécute lorsqu'un objet est créé à partir d'une classe. Ce code est le premier à s'exécuter lorsque vous créez une instance d'un objet ou que vous l'exécutez à l'aide de la classe de document..
public function HangmanPlus (): void / * Il faut déclarer le nouveau tableau dans le constructeur afin de détecter que les éléments (tableau) sont MovieClips dans Stage * / buttons = new Array (A, B, C, D, E, F, G, H, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z); / * Boutons de l'écran du menu * / menuScreen.newGame.addEventListener (MouseEvent.MOUSE_UP, init); menuScreen.about.addEventListener (MouseEvent.MOUSE_UP, showAboutView); menuScreen.options.addEventListener (MouseEvent.MOUSE_UP, showOptionsView); / * Crée des champs de texte pour le mot * / fmt.color = 0x282425; fmt.font = "Avenir 85 Heavy"; taille_mf = 18; hideParts (); // masque les pièces du pendu
Cette fonction est exécutée lorsque l'utilisateur clique sur le bouton Nouveau jeu..
fonction privée init (e: MouseEvent): void addButtonListeners (boutons); // ajoute les écouteurs au clavier. back.addEventListener (MouseEvent.MOUSE_UP, opBackHandler); // ajoute l'écouteur au bouton Précédent loadTxt (categories [category] + ".txt"); // charge le fichier texte du tableau, la fonction est créée ultérieurement categoryText.text = categories [catégorie]; // définit la valeur du texte de la catégorie, elle est affichée en haut du graphique catégorie de classeurLP .text = catégories [catégorie]; tween = new Tween (menuScreen, "y", Strong.easeOut, menuScreen.y, - menuScreen.height / 2,0.8, true); // crée une interpolation animant le menuAfficher correct = 0; réinitialiser le correct et échec des suppositions échec = 0;
Cette fonction redémarre certaines variables et paramètres pour charger un nouveau mot, peu importe si le mot a été deviné ou non. Ça s'appelle quand le mot animation se termine.
fonction privée redémarrage (e: TweenEvent): void / * Redémarre certains vars initiaux * / hideParts (); correctLetters = 0; addButtonListeners (boutons); essais = 6; espaces = 0; tfs = new Array (); removeChild (tfCont); // supprime les champs de texte du mot pour (var j: int = 0; j < keys; j++) removeChild(icontainer[j]);//Removes the button inactive clips, according to the keys pressed removeChild(usContainer);//Removes the underscores /* Removes last word from array to avoid duplicates */ arrayIndex = allWordsArray.indexOf(currentWords); allWordsArray.splice(arrayIndex, 1); /* Load another word from array */ currentWords = allWordsArray[Math.floor(Math.random() * allWordsArray.length)]; letters = currentWords.split("");//Split letters to compare everyone to space createUnderscores(currentWords); createTextfields(); keys = 0; icontainer = new Array();
Charge un fichier texte. Cette fonction est exécutée à l'étape 24.
fonction privée loadTxt (file: String): void txtLoader.load (new URLRequest (fichier)); txtLoader.addEventListener (Event.COMPLETE, parseTxt); // ajoute un écouteur pour analyser le texte
Analyse le texte pour créer les traits de soulignement et les champs de texte nécessaires.
private function parseTxt (e: Event): void allWords = e.target.data; // Obtient les données du txtLoader allWordsArray = allWords.split (","); // divise les mots, les mots dans le fichier texte. DOIT être UpperCase et séparés par des virgules currentWords = allWordsArray [Math.floor (Math.random () * allWordsArray.length)]; // Définit un ou plusieurs mots aléatoires sur la variable currentWords letters = currentWords.split (""); / / Fractionner des lettres pour comparer tout le monde à l'espace createUnderscores (currentWords); createTextfields ();
Le bouton Précédent supprime les données inutiles, redémarre les variables et envoie l'utilisateur à l'écran de menu.
fonction privée opBackHandler (e: MouseEvent): void / * Supprimer l'alerte si elle est au stade * / if (alertIsOnStage) removeChild (alert); alertIsOnStage = false; tween = new Tween (menuScreen, "y", Strong.easeOut, menuScreen.y, stage.stageHeight / 2,1, true); // animer la vue de menu back.removeEventListener (MouseEvent.MOUSE_UP, opBackHandler); // Supprime le programme d'écoute du bouton removeButtonListeners (boutons); // Supprime les programmes d'écoute du clavier hideParts (); // masque les éléments du pendu / * Redémarre les variables, voir la fonction de redémarrage * / correctLetters = 0; essais = 6; espaces = 0; tfs = new Array (); removeChild (tfCont); pour (var j: int = 0; j < keys; j++) removeChild(icontainer[j]); removeChild(usContainer); keys = 0; icontainer = new Array();
Cette fonction crée les traits de soulignement en fonction des lettres et des espaces dans le (s) mot (s) choisi (s)..
fonction privée createUnderscores (words: String): void usContainer = new Sprite (); pour (var i: int = 0; i < words.length; i++) us = new Underscore(); us.x = (us.width + 3) * i; if (letters[i] == " ") spaces++; else usContainer.addChild(us); usContainer.x = (stage.stageWidth / 2) - (usContainer.width / 2) + (us.width / 2); usContainer.y = (stage.stageHeight / 2) + 10; addChild(usContainer);
La fonction createTextfields () crée les TextFields nécessaires pour afficher une seule lettre du ou des mots dans chacun d'eux..
fonction privée createTextfields (): void tfCont = new Sprite (); pour (var i: int = 0; i < letters.length; i++) tf = new TextField(); tf.width = 20; tf.height = 30; tf.autoSize = TextFieldAutoSize.LEFT; tf.selectable = false; tf.defaultTextFormat = fmt; tf.x = (us.width + 3) * i; tfs.push(tf); tfCont.addChild(tf); tfCont.x = (stage.stageWidth / 2) - (usContainer.width / 2) - 3; tfCont.y = (stage.stageHeight / 2) - 10; addChild(tfCont);
Cachons les pièces du bourreau.
fonction privée hideParts (): void body.visible = false; head.visible = false; leftArm.visible = false; leftLeg.visible = false; rightArm.visible = false; rightLeg.visible = false;
C'est une fonction essentielle. Il cherchera si la lettre appuyée est dans le mot actuel à deviner, désactivera la touche, jouera une sonorité de touche, ajoutera la clé à l'étape si elle existe, vérifie si le mot est complet ou si les chances sont finies.
fonction privée onKeyPress (e: MouseEvent): void / * Touche Obtenir et Désactiver * / inactive = new Inactive (); inactive.x = e.target.parent.x; // Ajout de "parent" car Flash reconnaît le MC à l'intérieur de "nom" inactive.y = e.target.parent.y; addChild (inactif); icontainer.push (inactif); touches ++; / * Lit le son * / btnSnd.play (); / * Vérifie si la lettre est sur le mot * / index = currentWords.search (new String (e.target.parent.name)); if (index! = -1) / * La lettre est sur le mot * / pour (var i: int = 0; i < letters.length; i++) if (new String(e.target.parent.name) == letters[i]) tfs[i].text = new String(e.target.parent.name); correctLetters++; if (correctLetters + spaces == letters.length)//If word is complete win(); removeButtonListeners(buttons); else tries--; switch (tries)//Shows the parts of the hangman case 6 : trace(6); break; case 5 : head.visible = true; break; case 4 : body.visible = true; break; case 3 : leftArm.visible = true; break; case 2 : rightArm.visible = true; break; case 1 : leftLeg.visible = true; break; case 0 : rightLeg.visible = true; for (var j:int = 0; j < letters.length; j++)//Shows the missing letters if (tfs[j].length == 0) tfs[j].textColor = 0xFF0000; tfs[j].text = letters[j]; removeButtonListeners(buttons); fail(); break; default : trace("Error");
Ce code ajoute les écouteurs du clavier.
fonction privée addButtonListeners (tableau: tableau): void pour (var i: int = 0; i < array.length; i++) array[i].addEventListener(MouseEvent.MOUSE_UP, onKeyPress);
Et cela enlève les auditeurs.
fonction privée removeButtonListeners (array: Array): void for (var i: int = 0; i < array.length; i++) array[i].removeEventListener(MouseEvent.MOUSE_UP, onKeyPress);
C'est la fonction qui sera exécutée lorsque l'utilisateur devine correctement un mot.
fonction privée win (): void / * Vérifier la victoire * / correct ++; if (correct == victoire) alert = new AlertView (); alert.alertDialog.title.text = "Vous gagnez"; alert.alertDialog.titleLP.text = "Vous gagnez"; alert.alertDialog.content.text = "Cliquez sur cette boîte de dialogue pour fermer."; addChild (alerte); alertIsOnStage = true; tween = new Tween (alert.alertDialog, "scaleX", Strong.easeOut, 0.5, 1, 0.5, true); // affiche la vue d'alerte alert.addEventListener (MouseEvent.MOUSE_UP, opBackHandler); else tween = new Tween (tfCont, "x", Strong.easeIn, tfCont.x, stage.stageWidth + tfCont.width, 0.5, true); // anime le mot et en définit un nouveau tween.addEventListener (TweenEvent) .MOTION_FINISH, redémarrez);
C'est la fonction qui sera exécutée lorsque l'utilisateur ne pourra pas deviner correctement le ou les mots.
fonction privée fail (): void / * Vérifier l'échec * / fail ++; if (échoue == vit) alert = new AlertView (); alert.alertDialog.title.text = "Vous perdez"; alert.alertDialog.titleLP.text = "Vous perdez"; alert.alertDialog.content.text = "Cliquez sur cette boîte de dialogue pour fermer."; addChild (alerte); alertIsOnStage = true; tween = new Tween (alert.alertDialog, "scaleX", Strong.easeOut, 0.5, 1, 0.5, true); alert.addEventListener (MouseEvent.MOUSE_UP, opBackHandler); else tween = new Tween (tfCont, "x", Strong.easeIn, tfCont.x, stage.stageWidth + tfCont.width, 1, true); tween.addEventListener (TweenEvent.MOTION_FINISH, redémarrer);
Cette fonction gérera les animations de la vue Options.
fonction privée showOptionsView (e: MouseEvent): void options = new OptionsView (); addChild (options); / * Ce sont les valeurs des options, extraites des variables * / options.category.text = categories [category]; options.victory.text = String (victoire); options.lives.text = String (lives); tween = new Tween (options, "x", Strong.easeOut, options.width, 0, 0.5, true); // La vue des options apparaît de droite à gauche / * Écouteurs de boutons * / options.back.addEventListener ( MouseEvent.MOUSE_UP, hideOptionsView); options.catButton.addEventListener (MouseEvent.MOUSE_UP, changeCategory); options.vicButton.addEventListener (MouseEvent.MOUSE_UP, changeVictory); options.livesButton.addEventListener (MouseEvent.MOUSE_UP, changeLives); / * Cette fonction masque OptionsView à l'aide d'une animation * / fonction privée hideOptionsView (e: MouseEvent): void options.removeEventListener (MouseEvent.MOUSE_UP, hideOptionsView); tween = new Tween (options, "x", Strong.easeOut, 0, options.width, 0.5, true); tween.addEventListener (TweenEvent.MOTION_FINISH, removeOptionsView); fonction privée removeOptionsView (e: TweenEvent): voi