Maak een geweldig galgje in Flash met ActionScript 3.0

Het ontwikkelen van een game is een must-have vaardigheid als je een Flash-ontwikkelaar bent, het maakt gebruik van veel verschillende ActionScript-methoden en -eigenschappen, plus je zult veel plezier hebben in het proces! In deze zelfstudie laat ik je zien hoe je een geavanceerd Hangman-spel kunt maken met ActionScript 3.0. Laten we spelen!


Stap 1: Kort overzicht

Tijdens deze Premium-tutorial zal ik het spelontwikkelingsproces van het grafisch gebruikersinterfaceontwerp met behulp van Flash Tools en een beetje Photoshop demonstreren aan het codegedeelte met behulp van de kracht van ActionScript 3.


Stap 2: Grafische gebruikersinterface

Dit zijn de elementen van de grafische gebruikersinterface die we zullen maken:



Stap 3: Logo

Maak een nieuw Flash-bestand en stel de afmetingen in op 320x480 px.


Selecteer het tekstgereedschap (T) en kies een lettertype in cartoonstijl. Ik gebruikte de GoodDog 86 pt.


Schrijf "Hangman +" en scheid (Cmd + B) de tekst om een ​​verloopkleur toe te voegen.


Selecteer de afbeeldingen en open het kleurenpaneel, kies Lineair verloop en gebruik deze kleuren: # FBA31E, # FECB56.


Gebruik het gereedschap Gradiënttransformatie om het verloop te draaien en een kleur te krijgen zoals in de afbeelding wordt weergegeven.


Herhaal dit proces in de "+" met behulp van deze kleuren: # 831000, # A91101.


Converteer de hele partij naar een MovieClip en voeg een slagschaduwfilter toe met de volgende waarden:


Je krijgt zoiets als dit:



Stap 4: Achtergrond

Laten we de achtergrond maken.

Open Photoshop en maak een nieuw bestand (320x480).


Selecteer het gereedschap Verloop (T) en voeg een bruine (# 4E4236, # 382F26) radiale achtergrond toe, beginnend vanaf het midden naar een van de randen.


Nu is het tijd om een ​​ruisfilter toe te voegen om een ​​gestructureerde achtergrond te krijgen.

Ga vanuit het menu naar Filter> Ruis> Ruis toevoegen en gebruik deze waarden:


Sla uw afbeelding op als png-24 met behulp van de optie "Opslaan voor web en apparaten" in het menu Bestand.

Je achtergrond zou er als volgt uit moeten zien:



Stap 5: Hoofdschermknoppen

Ga terug naar Flash, importeer (Cmd + R) je achtergrond en centreer deze.

Gebruik de schikken> verzenden naar terug optie vanuit het contextuele menu (klik met de rechtermuisknop) om de achtergrond naar beneden te verzenden en uw eerder gemaakte logo te tonen.


Selecteer het Primitive Tool Rechthoek en maak een rechthoek van 200x50 px met hetzelfde gele verloop als voorheen (# FBA31E, # FECB56).


Ga naar Rechthoekopties in het eigenschappenvenster en stel de hoekradius in op 8,00.


Converteer de tekening naar MovieClip en voeg het volgende filter toe:


Selecteer het gereedschap Tekst, maak een nieuwe statische tekst en schrijf "Nieuw spel". Ik heb dit formaat gebruikt: Myriad Pro Semibold, 24 pt, # 831000.


Om een ​​letterperseffect te creëren, dupliceer (Cmd + D) het tekstveld en verplaats het een pixel naar beneden, verander de tekstkleur naar # FDDA8A.


Converteer het naar MovieClip en centreer het in de fase. Zet de naam van het exemplaar op "newGame".

Herhaal dit proces met nog twee knoppen; Opties en Info. Vergeet niet om de instantienamen te wijzigen.


Converteer wat je tot nu toe hebt overgebracht naar een MovieClip, noem het "menuScreen" en plaats het tijdelijk weg van het podium.


Stap 6: Spelafbeeldingen

Dit is de interface van het spel zelf, waarbij je met het toetsenbord werkt om het verborgen woord te raden.


Zoals je ziet gebruiken we dezelfde achtergrond, dus dupliceer het en centreer het in het werkgebied.


Stap 7: NoteBook

Selecteer het Primitive Tool Rechthoek, verander de hoekradius in 10 en teken een rechthoek van 260x250 px. Voeg een radiale achtergrond toe (# FBEE84, # FDF9B2).


Om de lijnen te maken, gebruik ik het gereedschap Rechthoek en teken ik een rechthoek van 260x1 px met de kleur # C6C970.


Dupliceer de lijn (Cmd + D) en plaats deze 10 pixels omlaag, herhaal dit totdat je ongeveer zoiets ziet als de volgende afbeelding:


Voor de zijlijnen maakt u een rechthoek van 1x250 px, # 99832E en plaatst u deze 20 pixels vanaf de rand, dupliceert u deze en plaatst u de nieuwe 2 pixels van het origineel.


Converteer dit naar MovieClip, dupliceer het, stuur het naar achteren en plaats het 5 px lager. Gebruik dezelfde knopfilter.


Nu zullen we de notebook een titel geven; deze tekst zal veranderen volgens de categorie die is geselecteerd in de opties.

Selecteer het gereedschap Tekst, maak een 236x25 px dynamisch tekstveld en schrijf wat tekst als richtlijn. Het formaat is Marker Felt 18 pt, # 663622.

Gebruik de letterpres-techniek die we eerder hebben gebruikt om wat detail toe te voegen. De instantienamen zijn "categoryText" en "categoryLP" voor het veld met de letterpress.



Stap 8: Galgje

Om de beul te tekenen, doen we een beetje vals, omdat Flash geen borstels heeft of iets dergelijks, we zullen een lettertype gebruiken om de kleurpotloodstijl te tekenen.

Ik heb tekens uit het lettertype LeviCrayola gebruikt om dit te tekenen:


Converteer elk onderdeel naar een MovieClip en stel hun instantienamen als volgt in: head, body, leftArm, rightArm, leftLeg, rightLeg.

Plaats de Hangman-onderdelen in het midden van de notebook en ga verder met de volgende stap.


Stap 9: Toetsenbord

De invoer van de gebruiker wordt afgehandeld door een toetsenbord in de fase waarin de ingedrukte toets wordt verborgen in het verborgen scherm.

Selecteer het Primitive Tool Rechthoek en teken een rechthoek van 26x38 px met de eerder gele achtergrond, voeg een hoekradius van 5 toe.


Converteer het naar MovieClip en voeg het knopfilter toe.

Voeg de bijbehorende letter toe en gebruik de letterzetseltechniek om een ​​mooiere knop te maken. Formaat is Myriad Pro Semibold, 23 pt, zwart.


Converteer de 2 elementen naar een MovieClip en noem deze als de letter die deze vertegenwoordigt in UpperCase.

Herhaal deze stap met alle letters, vergeet niet om de juiste exemplaarnaam in te stellen.

We zullen ook een MovieClip maken die boven op de toets verschijnt als deze wordt ingedrukt met dezelfde rechthoek die voor de sleutel is gemaakt

Kopieer en plak de rechthoek en verander de kleur in wit, alpha 30%, markeer het vak "Exporteren voor ActionScript" en noem deze "Inactief".


Er zal ook een geluid worden gespeeld wanneer een toets wordt ingedrukt.

Je vindt alle soorten geluiden, inclusief knoppen op AudioJungle, wanneer je een geluid vindt dat je bevalt, importeer het (Cmd + R) en klik in het Bibliotheekpaneel met de rechtermuisknop en selecteer "eigenschappen", markeer het vak "Exporteren voor ActionScript" en schrijf ButtonSound als de klasse.



Stap 10: Back-toets

De back-toets wist de spelgegevens en brengt de gebruiker naar het menuscherm.

Maak een sleutel met dezelfde stappen als het toetsenbord, converteer deze naar MovieClip en noem deze "terug".



Stap 11: Opties

De optiesweergave wordt weergegeven wanneer de gebruiker klikt op de knop Opties in het menuscherm. Het geeft informatie over enkele opties voor het spel.

Het zou gemakkelijker moeten zijn om deze weergave te maken, aangezien we al alle afbeeldingen en achtergronden hebben.


De categorie-optie, zoals de naam al zegt, beschrijft het soort woorden dat tijdens het spelen wordt weergegeven. U kunt een onbeperkt aantal categorieën gebruiken, we zullen dat later in de code zien.

De Victory-optie is het aantal woorden dat je nodig hebt om te raden om het spel als gewonnen te declareren.

De optie Leven is het aantal verkeerde antwoorden dat je kunt maken voordat je het spel verliest.


Stap 12: TextFields

Deze weergave heeft 6 tekstvelden, de linker zijn statisch en op de volgende manier opgemaakt: Marker Felt Thin, 19 pt, # 673723.


De juiste zijn Dynamisch en fomatted als volgt: Helvetica Regular, 15 pt, # 673723. (voeg instanties toe in afbeelding)



Stap 13: Terugknop

Met de knop Terug gaat de gebruiker naar het menuscherm.

Maak een statisch tekstveld met dezelfde indeling als hierboven en wijzig de grootte in 16 pt.

Converteer het naar Button, noem het "terug".



Stap 14: Meer Knop

De knop Meer verandert de waarden van de opties.

Maak een witte cirkel van 16x16 px met behulp van het gereedschap Ovaal (O).


Maak een nieuwe cirkel, deze keer 12x12, # 673723 en centreer het.


Maak een 2px brede 5px-lange rechthoek en dupliceer deze, draai de -45 graden en haal hem uit elkaar (Cmd + B) om ze kruisend te maken, verwijder het onbewerkte gebied om een ​​pijl te maken en centreer het.


Converteer het naar MovieClip en voeg het volgende filter toe:


Dupliceer en plaats de knoppen zoals getoond in stap 11 en noem ze: "catButton", "vicButton" en "livesButton".

Converteer alles naar een MovieClip, schakel het selectievakje "Exporteren voor ActionScript" in en noem deze "OptionsView". U kunt het symbool nu uit het stadium verwijderen.


Stap 15: Over

De weergave Info toont informatie over de maker, het bedrijf en de versie van de applicatie.


Schaal het Hangman-logo op 121x30,6 px en centreer het.

Maak en centreer een statisch tekstveld met dit formaat: Helvetica Neue Regular, 15 pt, #EFEFEF en voeg de tekst toe die in de afbeelding wordt weergegeven.

Converteer alles naar een MovieClip, schakel het selectievakje "Exporteren voor ActionScript" in en noem deze "OverView". U kunt het symbool nu uit het stadium verwijderen.


Stap 16: Waarschuwing

We gaan een bericht weergeven wanneer je wint of verliest, daarvoor gebruiken we deze waarschuwingsweergave.


Maak een rechthoek van 320x240 px en gebruik dit radiale verloop: # 000000 alpha 0, # 000000 alpha 50.


Maak vervolgens een witte rechthoek van 260 x 100 px met een straal van de straal van 20 px en plaats deze in het midden van de zwarte achtergrond.


Dupliceer de rechthoek en maak het 256x96 px, # FCB73A alpha 90.


Maak een 240x23 px dynamisch tekstveld en noem het "titel". Druk op de knop 'Centreren' in het deelvenster Alinea en gebruik de letterdruktechniek, maar verplaats het gedupliceerde tekstveld nu omhoog. Het formaat is Helvetica Bold 19 pt, wit.


Gebruik een ander dynamisch tekstveld met dit formaat: Helvetica Regular 15 pt, white. Plaats het in het midden en gebruik de optie Uitlijncentrum.

Noem het "inhoud" en voeg wat tekst toe aan de velden als een gids.


Converteer alles naar een MovieClip, schakel het selectievakje "Exporteren voor ActionScript" in en noem deze "AlertView".


Stap 17: De interface instellen

Plaats het MenuScreen opnieuw in het werkgebied en centreer het. Het zou bovenop de game graphics moeten staan.



Stap 18: ActionScript-tijd!

Het is tijd voor ActionScript. Maak een nieuw ActionScript-bestand en sla het op als Main.as in de klassenmap.



Stap 19: Pakket

pakketlessen 

Met het trefwoord pakket kunt u uw code indelen in groepen die door andere scripts kunnen worden geïmporteerd. Het wordt aanbevolen om ze een naam te geven, te beginnen met een kleine letter en intercaps te gebruiken voor volgende woorden, bijvoorbeeld: mijn lessen.

Als u uw bestanden niet in een pakket wilt groeperen of als u slechts één klasse heeft, kunt u deze rechtstreeks uit uw bronmap gebruiken, maar het idee is om georganiseerd te zijn.


Stap 20: Necesary Classes importeren

Dit zijn de vereiste klassen. Raadpleeg de Flash Help (F1) voor een meer gedetailleerde beschrijving van elke klas..

 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; / * Importeer klassen voor animaties * / import fl.transitions.Tween; import fl.transitions.easing. *; import fl.transitions.TweenEvent;

Stap 21: De klasse declareren en verlengen

De strekt keyword definieert een klasse die een subklasse van een andere klasse is. De subklasse erft alle methoden, eigenschappen en functies, op die manier kunnen we ze in onze klasse gebruiken.

 public class HangmanPlus breidt Sprite uit 

In dit voorbeeld neemt de klasse HangmanPlus alle methoden en eigenschappen van de Sprite-klasse over.


Stap 22: Variabelen

Er zijn veel variabelen in dit spel, dit komt omdat veel dingen kunnen variëren. U vindt alles wat in de opmerkingen wordt uitgelegd.

 / * categorieën, laadt de loader-functie een tekstbestand op met behulp van de namen in deze array als je een categorie wilt toevoegen, voeg je gewoon het tekstbestand toe aan de map waar Hangman + .swf is en de naam van het bestand aan de array * / privé var-categorieën: Array = nieuwe Array ("Fruits", "Animals", "Sports"); private var categorie: int = 0; // Deze variabele wordt gewijzigd in de Opties, wanneer de gebruiker klikt op de Meer Knop 1 wordt toegevoegd en vervolgens gebruikt in de array om de juiste categorie te kiezen private var correctLetters: int = 0; // De juiste letters geraden, het zal worden vergeleken met de letters array lengte om te controleren of het woord voltooid is private var tries: int = 6; // Het aantal pogingen, (hoofd, lichaam, twee armen, twee benen) private var btnSnd: ButtonSound = new ButtonSound (); // Het geluid dat wordt afgespeeld als een toets op het toetsenbord wordt ingedrukt privé var inactive: Inactive; // De clip die we gebruiken om de reeds ingedrukte toetsen te blokkeren private var icontainer: Array = new Array () ; // Een array om de inactieve clips op te slaan voor effectieve verwijdering van persoonlijke var-sleutels: int = 0; // Een variabele om de sleutels te tellen die al inactief zijn, deze var geeft het aantal "icontainer" aan om private var index te verwijderen: int ; // Slaat de waarde op van de methode String.search, die wordt gebruikt om te zoeken naar de ingedrukte toets in de verborgen privé-var-knoppen: Arr ay; // De reeks namen van knoppen, die wordt gebruikt om alle luisteraars eenvoudig toe te voegen private var txtLoader = new URLLoader (); // Hiermee wordt het opgegeven tekstbestand geopend private var allWords: String; // Een tekenreeks met alle woorden in het tekstbestand private var allWordsArray: Array = new Array (); // Bevat de allWords-var, gescheiden door woord private var currentWords: String; // het huidige te raden woord (s) private var fmt: TextFormat = new TextFormat (); // TextFormat private var us: Underscore; // De onderstrepingstag clip private var usContainer: Sprite; // Een container voor de onderstrepingstekens private var letters: Array; // De letters van het huidige woord private var tf: TextField; // TextField private var tfCont: Sprite; // Bevat de tekstvelden private var tfs: Array = new Array (); Slaat de tekstvelden op, gebruikt om deze te verwijderen private var tween: Tween; // Tween, voor animatie private var spaces: int = 0; // Slaat de spaties in het huidige woord (en) op private var arrayIndex: int; // Slaat de woorden op die niet zijn gebruikt privé var opt ionen: OptionsView; // De opties bekijken clip private var over: AboutView; privé var-waarschuwing: AlertView; private var correct: int = 0; // De juiste woorden teller private var mislukt: int = 0; // Fails counter private var victory: int = 3; // Default overwinningen om privé var lives te winnen: int = 3; // Standaard woont privé var alertIsOnStage: Boolean = false; // Waar als AlertView zich op het podium bevindt

Stap 23: Constructor

De constructor is een functie die wordt uitgevoerd wanneer een object wordt gemaakt op basis van een klasse. Deze code is de eerste die wordt uitgevoerd wanneer u een exemplaar van een object maakt of wordt uitgevoerd met behulp van de documentklasse.

 openbare functie HangmanPlus (): void / * moeten de nieuwe array in de constructor declareren om te detecteren dat de (array) elementen MovieClips in Stage * / buttons = new Array (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z); / * Menuschermknoppen * / menuScreen.newGame.addEventListener (MouseEvent.MOUSE_UP, init); menuScreen.about.addEventListener (MouseEvent.MOUSE_UP, showAboutView); menuScreen.options.addEventListener (MouseEvent.MOUSE_UP, showOptionsView); / * Maak tekstvelden voor woord * / fmt.color = 0x282425; fmt.font = "Avenir 85 Heavy"; fmt.size = 18; hideParts (); // Verbergt de beulonderdelen

Stap 24: startfunctie

Deze functie wordt uitgevoerd wanneer de gebruiker op de knop Nieuw spel klikt.

 private function init (e: MouseEvent): void addButtonListeners (buttons); // Voegt de luisteraars toe aan het toetsenbord back.addEventListener (MouseEvent.MOUSE_UP, opBackHandler); // Voegt de luisteraar toe aan de back-knop loadTxt (categorieën [categorie] + ".txt"); // Laadt het tekstbestand uit de array, de functie wordt later gemaakt categoryText.text = categorieën [categorie]; // Stelt de categorietekstwaarde in, deze wordt bovenaan in de notebook-grafische categorie LP weergegeven .text = categorieën [categorie]; tween = nieuwe Tween (menuScreen, "y", Strong.easeOut, menuScreen.y, - menuScreen.height / 2.0.8, true); // Creëert een tween die MenuView up animeert = 0; // Herstelt de juiste en mislukte gissingen mislukt = 0; 

Stap 25: Herstartfunctie

Met deze functie worden enkele variabelen en instellingen opnieuw gestart om een ​​nieuw woord te laden, ongeacht of het woord al dan niet werd geraden. Het wordt genoemd wanneer het woord animatie eindigt.

 persoonlijke functie opnieuw opstarten (e: TweenEvent): void / * Start enkele vars * / hideParts () opnieuw; correctLetters = 0; addButtonListeners (toetsen); probeert = 6; spaties = 0; tfs = nieuwe array (); removeChild (tfCont); // Verwijdert de tekstvelden van het woord voor (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(); 

Stap 26: laad bestand

Laadt een TextFile. Deze functie wordt uitgevoerd in stap 24.

 private functie loadTxt (file: String): void txtLoader.load (nieuwe URLRequest (bestand)); txtLoader.addEventListener (Event.COMPLETE, parseTxt); // Voegt een listener toe om de tekst te ontleden

Stap 27: Tekst parseren

Hiermee parseert u de tekst om de benodigde underscores en tekstvelden te maken.

 persoonlijke functie parseTxt (e: Event): void allWords = e.target.data; // Haalt de gegevens van de txtLoader allWordsArray = allWords.split (","); // splitst de woorden, de woorden in het tekstbestand MOET UpperCase en door komma's gescheiden currentWords zijn = allWordsArray [Math.floor (Math.random () * allWordsArray.length)]; // Stelt een willekeurig woord (willekeurige woorden) in voor de letters variabele currentWords = currentWords.split (""); / / Split letters om iedereen te vergelijken met space createUnderscores (currentWords); createTextfields (); 

Stap 28: Acties van de terugknop

De knop Terug verwijdert onnodige gegevens, start variabelen op en verzendt de gebruiker naar het menuscherm.

 private function opBackHandler (e: MouseEvent): void / * Waarschuwing verwijderen als deze zich in fase * / if bevindt (alertIsOnStage) removeChild (alert); alertIsOnStage = false;  tween = nieuwe Tween (menuScreen, "y", Strong.easeOut, menuScreen.y, stage.stageHeight / 2,1, true); // Animeer terug naar het Menu View back.removeEventListener (MouseEvent.MOUSE_UP, opBackHandler); // Verwijder de luisteraar via de knop removeButtonListeners (knoppen); // Verwijder de toetsenbordlisteerders hideParts (); // verbergt beulonderdelen / * Start variabelen opnieuw, zie herstartfunctie * / correctLetters = 0; probeert = 6; spaties = 0; tfs = nieuwe array (); removeChild (tfCont); voor (var j: int = 0; j < keys; j++)  removeChild(icontainer[j]);  removeChild(usContainer); keys = 0; icontainer = new Array(); 

Stap 29: onderstrepingstekens

Met deze functie worden de onderstrepingstekens gemaakt op basis van de letters en spaties in het / de gekozen woord (en).

 private function createUnderscores (words: String): void usContainer = new Sprite (); for (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); 

Stap 30: TextFields

De functie createTextfields () maakt de nodige TextFields om een ​​enkele letter van het woord / de woorden in elke letter weer te geven.

 private function createTextfields (): void tfCont = new Sprite (); for (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); 

Stap 31: Functie delen verbergen

Laten we de delen van de beul verbergen.

 private function hideParts (): void body.visible = false; head.visible = false; leftArm.visible = false; leftLeg.visible = false; rightArm.visible = false; rightLeg.visible = false; 

Stap 32: Toetsenbordacties

Dit is een kernfunctie. Er wordt gezocht of de letter die wordt ingedrukt in het huidige woord is om te raden, de sleutel uitschakelt, een toetsgeluid afspeelt, de toonsoort toevoegt voor het geval het bestaat, controleert of het woord is voltooid of dat de kansen voorbij zijn.

 private function onKeyPress (e: MouseEvent): void / * Get and Disable key * / inactive = new Inactive (); inactive.x = e.target.parent.x; // "parent" toegevoegd omdat flash de MC binnenin herkent als "name" inactive.y = e.target.parent.y; addChild (inactief); icontainer.push (inactief); sleutels ++; / * Speelt geluid af * / btnSnd.play (); / * Controleer of letter op woord * / index = currentWords.search staat (nieuwe tekenreeks (e.target.parent.name)); if (index! = -1) / * Letter staat op woord * / for (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");   

Stap 33: Toetsenbordluisteraars

Deze code voegt de luisteraars voor het toetsenbord toe.

 persoonlijke functie addButtonListeners (array: Array): void for (var i: int = 0; i < array.length; i++)  array[i].addEventListener(MouseEvent.MOUSE_UP, onKeyPress);  

En dit verwijdert de luisteraars.

 private function removeButtonListeners (array: Array): void for (var i: int = 0; i < array.length; i++)  array[i].removeEventListener(MouseEvent.MOUSE_UP, onKeyPress);  

Stap 34: Correcte woordfunctie

Dit is de functie die wordt uitgevoerd wanneer de gebruiker een woord of woorden juist raad.

 private function win (): void / * Check for victory * / correct ++; if (correct == victory) alert = new AlertView (); alert.alertDialog.title.text = "Jij wint"; alert.alertDialog.titleLP.text = "Jij wint"; alert.alertDialog.content.text = "Klik op dit dialoogvenster om te sluiten."; addChild (alert); alertIsOnStage = true; tween = nieuwe Tween (alert.alertDialog, "scaleX", Strong.easeOut, 0.5, 1, 0.5, true); // Toont de alertweergave alert.addEventListener (MouseEvent.MOUSE_UP, opBackHandler);  else tween = nieuwe Tween (tfCont, "x", Strong.easeIn, tfCont.x, stage.stageWidth + tfCont.width, 0.5, true); // Animeert het woord en stelt een nieuw tween.addEventListener in (TweenEvent .MOTION_FINISH, herstart); 

Stap 35: Verkeerde woordfunctie

Dit is de functie die wordt uitgevoerd als de gebruiker de woorden niet correct raadt.

 private function fail (): void / * Check for failure * / fails ++; if (failed == lives) alert = new AlertView (); alert.alertDialog.title.text = "Je verliest"; alert.alertDialog.titleLP.text = "Je verliest"; alert.alertDialog.content.text = "Klik op dit dialoogvenster om te sluiten."; addChild (alert); alertIsOnStage = true; tween = nieuwe Tween (alert.alertDialog, "scaleX", Strong.easeOut, 0.5, 1, 0.5, true); alert.addEventListener (MouseEvent.MOUSE_UP, opBackHandler);  else tween = nieuwe Tween (tfCont, "x", Strong.easeIn, tfCont.x, stage.stageWidth + tfCont.width, 1, true); tween.addEventListener (TweenEvent.MOTION_FINISH, restart); 

Stap 36: weergave Opties

Deze functie zal de Options View-animaties behandelen.

 private function showOptionsView (e: MouseEvent): void options = new OptionsView (); addChild (opties); / * Dit zijn de waarden van de opties, ontleend aan de variabelen * / options.category.text = categorieën [categorie]; options.victory.text = String (overwinning); options.lives.text = String (levens); tween = nieuwe Tween (opties, "x", Strong.easeOut, options.width, 0, 0.5, true); // Hierdoor verschijnt de weergave van opties van rechts naar links / * Button listeners * / 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);  / * Deze functie verbergt de OptionsView met behulp van een animatie * / private functie hideOptionsView (e: MouseEvent): void options.removeEventListener (MouseEvent.MOUSE_UP, hideOptionsView); tween = nieuwe Tween (opties, "x", Strong.easeOut, 0, options.width, 0.5, true); tween.addEventListener (TweenEvent.MOTION_FINISH, removeOptionsView);  private function removeOptionsView (e: TweenEvent): void / *