Lag et fantastisk Hangman-spill i Flash ved hjelp av ActionScript 3.0

Å utvikle et spill er må-ha ferdighet hvis du er en Flash-utvikler, den bruker mange forskjellige ActionScript-metoder og egenskaper, pluss du vil ha mye moro i prosessen! I denne veiledningen vil jeg vise deg hvordan du lager et avansert Hangman-spill ved hjelp av ActionScript 3.0. La oss leke!


Trinn 1: Kort oversikt

Under denne Premium-opplæringen vil jeg demonstrere spillutviklingsprosessen fra grafisk brukergrensesnittdesign ved hjelp av Flash Tools og litt Photoshop, til kodedelen ved hjelp av kraften til ActionScript 3.


Trinn 2: Grafisk brukergrensesnitt

Dette er elementene i det grafiske brukergrensesnittet vi skal opprette:



Trinn 3: Logo

Opprett en ny Flash-fil og still inn dimensjonene til 320x480 px.


Velg tekstverktøyet (T), og velg en tegneserieformat, jeg brukte GoodDog 86 pt.


Skriv "Hangman +" og brett fra hverandre (Cmd + B) teksten for å legge til en gradientfarge.


Velg grafikken og åpne fargepanelet, velg Linjær gradient og bruk disse fargene: # FBA31E, # FECB56.


Bruk Gradient Transform Tool til å rotere graden og få en farge som vist på bildet.


Gjenta denne prosessen i "+" ved å bruke disse fargene: # 831000, # A91101.


Konverter hele partiet til en MovieClip og legg til et Drop Shadow Filter med følgende verdier:


Du vil ende opp med noe slikt:



Trinn 4: Bakgrunn

La oss lage bakgrunnen.

Åpne Photoshop og opprett en ny fil (320x480).


Velg Gradient Tool (T) og legg til en brun (# 4E4236, # 382F26) radial bakgrunn som starter fra midten til en av kantene.


Nå er det på tide å legge til et støyfilter for å få en strukturert bakgrunn.

Fra menyen, gå til Filter> Støy> Legg til støy og bruk disse verdiene:


Lagre bildet som png-24 ved hjelp av alternativet "Lagre for web og enheter" i Fil-menyen.

Din bakgrunn bør se slik ut:



Trinn 5: Hovedskjermknapper

Gå tilbake til Flash, importer (Cmd + R) bakgrunnen din og senter den.

Bruk alternativet Ordne> Send til tilbake fra kontekstmenyen (høyreklikk) for å sende bakgrunnen til bunnen og vis din tidligere opprettede logo.


Velg Rectangle Primitive Tool og opprett et 200x50 px rektangel med samme gule gradient som før (# FBA31E, # FECB56).


Gå til Rectangle Options i Egenskaper panelet og angi hjørne radius til 8,00.


Konverter tegningen til MovieClip og legg til følgende filter:


Velg tekstverktøyet, opprett en ny statisk tekst og skriv "Nytt spill". Jeg brukte dette formatet: Myriad Pro Semibold, 24 pt, # 831000.


For å lage en letterpress-effekt, dupliser (Cmd + D) tekstfeltet og flytt det til en piksel ned, Endre tekstfargen til # FDDA8A.


Konverter den til MovieClip og senter den i scenen. Sett sitt forekomstnavn til "newGame".

Gjenta denne prosessen med to knapper; Valg og Om. Husk å endre forekomstnavnene.


Konverter det du har så langt til en MovieClip, nevner det "menyskjerm" og legg det midlertidig vekk fra scenen.


Trinn 6: Game Graphics

Dette er grensesnittet til selve spillet, hvor du samhandler med tastaturet for å gjette det skjulte ordet.


Som du kan se bruker vi samme bakgrunn, så dupliser den og senter den i scenen.


Trinn 7: Notatbok

Velg Primitive Tool Rectangle, endre hjørneradius til 10 og tegne et 260x250 px rektangel. Legg til en radial bakgrunn (# FBEE84, # FDF9B2).


For å lage linjene, bruker jeg rektangelverktøyet og tegner et 260x1 px rektangel med en farge på # C6C970.


Dupliser linjen (Cmd + D) og legg den 10 piksler ned, gjenta dette til du får noe som følgende bilde:


For sidelinjene lager du en 1x250 px, # 99832E rektangel og legger den 20 piksler fra kanten, dupliserer den og legg den nye en 2 piksler fra originalen.


Konverter dette til MovieClip, dupliser det, send det til baksiden og legg det 5 px lavere. Bruk samme knappfilter.


Nå gir vi notatboken en tittel; Denne teksten endres i henhold til kategorien valgt i alternativene.

Velg tekstverktøyet, opprett en 236x25 px Dynamic TextField og skriv litt tekst som en guide. Formatet er Marker Felt 18 pt, # 663622.

Bruk letterpres teknikken vi brukte før for å legge til noen detaljer. Eksempelnavnene er "categoryText" og "categoryLP" for bokstavsfeltet.



Trinn 8: Hangman

For å tegne hangmanen vil vi jukse litt, siden Flash ikke har pensler eller noe lignende, bruker vi en skrift for å tegne fargestifter.

Jeg brukte tegn fra fonten LeviCrayola for å tegne dette:


Konverter hver del til en MovieClip og angi deres forekomstnavn som dette: hode, kropp, venstreArm, høyreArm, venstreLeg, høyreLeg.

Plasser Hangman-delene i midten av notisboken og fortsett til neste trinn.


Trinn 9: Tastatur

Brukerinngangen blir håndtert av et tastatur i scenen som vil kaste nøkkelen trykket til skjult skjerm.

Velg Rectangle Primitive Tool og tegne et 26x38 px rektangel med den tidligere gule bakgrunnen, legg til en radius på hjørnet på 5.


Konverter den til MovieClip og legg til knappfilteret.

Legg til tilsvarende bokstav og bruk bokstavspresseteknikken for å skape en bedre utseende-knapp. Formatet er Myriad Pro Semibold, 23 pt, Black.


Konverter de to elementene til en MovieClip og betegne den som brevet den representerer i UpperCase.

Gjenta dette trinnet med alle bokstaver, husk å angi riktig forekomstnavn.

Vi vil også lage en MovieClip som vises øverst på nøkkelen når den trykkes med samme rektangel som er opprettet for nøkkelen

Kopier og lim inn rektangelet og bytt det farge til hvitt, alfa 30%, merk av "Eksporter for ActionScript" -boksen og navnet "Inaktiv".


En lyd vil også bli spilt når en tast trykkes.

Du kan finne alle typer lyder, inkludert knapper på AudioJungle, når du finner en lyd du liker, importerer den (Cmd + R) og i Bibliotekspanelet, høyreklikker du den og velger "egenskaper", merk av "Eksporter for ActionScript" -boksen og skriv ButtonSound som klassen.



Trinn 10: Tilbaketast

Tilbake-tasten vil slette spilldataene og ta brukeren til menyskjermbildet.

Opprett en nøkkel ved hjelp av de samme trinnene som tastaturet, konverter det til MovieClip og navngi det "tilbake".



Trinn 11: Alternativer

Alternativvisningen vises når brukeren klikker på Alternativer-knappen i menyskjermbildet. Det viser informasjon om noen alternativer for spillet.

Det bør være lettere å lage denne visningen siden vi allerede har all grafikk og bakgrunn.


Alternativet Kategori, som navnet sier, beskriver typen ord som skal vises når du spiller. Du kan bruke ubegrenset antall kategorier, vi ser det senere i koden.

Victory-alternativet er antall ord som du trenger for å gjette å erklære spillet som vant.

Livet alternativet er antall feil svar du kan gjøre før du mister spillet.


Trinn 12: TextFields

Denne visningen har en 6 TextFields, de venstre er Statisk og formatert på følgende måte: Marker Felt Thin, 19 pt, # 673723.


De rette er dynamiske og fomatted slik: Helvetica Regular, 15 pt, # 673723. (legg til forekomster i bilde)



Trinn 13: Tilbake-knapp

Tilbakeknappen vil ta brukeren til menyskjermbildet.

Lag et statisk tekstfelt med samme format som de ovenfor, og endre størrelsen til 16 pt.

Konverter den til knappen, gi den navnet "tilbake".



Trinn 14: Flere knapper

Mer-knappen vil endre verdiene av alternativene.

Opprett en hvit 16x16 px sirkel ved hjelp av Oval Tool (O).


Opprett en annen sirkel, denne gangen 12x12, # 673723 og senter den.


Lag et 2px bredt 5px høyt rektangel og duplikat det, roter -45 grader og kutt det fra hverandre (Cmd + B) for å få dem til å skjære, fjern det uønskede området for å lage en pil og sentrere det.


Konverter den til MovieClip og legg til følgende filter:


Dupliser og legg knappene som vist i Trinn 11 og navngi dem: "catButton", "vicButton" og "livesButton".

Konverter alt til en MovieClip, merk av for "Export for ActionScript" og merk det "OptionsView". Du kan slette symbolet fra scenen nå.


Trinn 15: Om

Omvisningen viser informasjon om skaperen, firmaet og versjonen av programmet.


Skal Hangman-logoen til 121x30.6 px og senter den.

Opprett og senter en Statisk TextField med dette formatet: Helvetica Neue Regular, 15 pt, #EFEFEF, og legg til teksten som vises i bildet.

Konverter alt til en MovieClip, merk av for "Export for ActionScript" og merk det "OmView". Du kan slette symbolet fra scenen nå.


Trinn 16: Alert

Vi skal vise en melding når du vinner eller taper, for det vil vi bruke denne Alert-visningen.


Lag et 320x240 px rektangel og bruk denne radiale gradienten: # 000000 alpha 0, # 000000 alpha 50.


Deretter lager du et hvitt rektangel på 260 x 100 px med 20 px hjørne radius og plasserer den midt på den svarte bakgrunnen.


Dupliser rektangelet og gjør det 256x96 px, # FCB73A alfa 90.


Lag en 240x23 px Dynamic TextField og gi den navnet "tittel". Trykk på "Juster senter" -knappen i avsnittspanelet og bruk bokstrykksteknikken, denne gangen flyttes duplisert tekstfelt opp. Formatet er Helvetica Bold 19 pt, hvit.


Bruk en annen Dynamic TextField med dette formatet: Helvetica Regular 15 pt, hvit. Plasser den i midten og bruk alternativet Juster senter.

Gi det navnet "innhold" og legg til litt tekst i feltene som en veiledning.


Konverter alt til en MovieClip, merk av for "Export for ActionScript" og merk det "AlertView".


Trinn 17: Stille inn grensesnittet

Plasser MenuScreen på scenen igjen og senter den. Det burde være på toppen av spillgrafikken.



Trinn 18: ActionScript-tid!

Det er på tide for ActionScript. Opprett en ny ActionScript-fil og lagre den som Main.as i klassen mappen.



Trinn 19: Pakke

pakke klasser 

Pakkeordet lar deg organisere koden din i grupper som kan importeres av andre skript. Det anbefales å navngi dem med en liten bokstav og bruk sammenheng for etterfølgende ord, for eksempel: timene mine.

Hvis du ikke vil gruppere filene dine i en pakke, eller du bare har en klasse, kan du bruke den rett fra kildemappen din, men ideen er å bli organisert.


Trinn 20: Import Necesary Classes

Dette er de obligatoriske klassene. For en mer detaljert beskrivelse om hver klasse, vennligst se Flash Help (F1).

 importer flash.display.Sprite; importer flash.net.URLLoader; importere flash.net.URLRequest; importer flash.text.TextFormat; importer flash.text.TextField; importere flash.text.TextFieldAutoSize; importer flash.events.MouseEvent; importere flash.events.Event; / * Importer klasser for animasjoner * / import fl.transitions.Tween; importere fl.transitions.easing. *; importere fl.transitions.TweenEvent;

Trinn 21: Deklarere og utvide klassen

De strekker Søkeord definerer en klasse som er en underklasse av en annen klasse. Underklassen arver alle metodene, egenskapene og funksjonene, slik at vi kan bruke dem i vår klasse.

 offentlig klasse HangmanPlus utvider Sprite 

I dette eksemplet arver HangmanPlus-klassen alle metodene og egenskapene til Sprite-klassen.


Trinn 22: Variabler

Det er mange variabler i dette spillet, dette skyldes at mange ting kan variere. Du finner alt som er forklart i kommentarene.

 / * -kategorier, vil lasterfunksjonen laste inn en tekstfil ved hjelp av navnene i denne gruppen hvis du vil legge til en kategori, bare legg til tekstfilen i katalogen der Hangman + .swf er og navnet på filen i arrayen * / private var kategorier: Array = new Array ("Fruits", "Animals", "Sports"); privat var kategori: int = 0; // Denne variabelen vil bli endret i alternativene, når brukeren klikker på More Button 1, legges til, deretter brukes i gruppen for å velge riktig kategori privat var correctLetters: int = 0; // De korrekte bokstavene gjettes, det vil bli sammenlignet med bokstavene lengde for å sjekke om ordet er fullstendig, og det er trykket: int = 6; // Antall forsøk, (hode, kropp, to armer, to ben) private var btnSnd: ButtonSound = ny ButtonSound (); // Lyden som skal spilles når en tastatur knapp trykkes privat var inaktiv: Inaktiv; // Klippet som vi vil bruke til å blokkere tastene som allerede er trykket på private varikontainer: Array = new Array () ; // En matrise for å lagre de inaktive klippene for effektiv fjerning av private var-taster: int = 0; // En variabel for å telle nøklene som allerede er inaktive, dette angir antall "ikontainer" for å fjerne private varindeks: int ; // Lagrer verdien av String.search-metoden, brukes til å søke etter nøkkelen trykket i ordet skjulte private var-knapper: Arr ay; // Et utvalg av knapper navn, som brukes til å legge alle lytterne enkelt privat var txtLoader = ny URLLoader (); // Dette vil laste tekstfilen spesifisert privat var allWords: String; // En streng med alle ordene som er inneholdt i tekstfilen privat var allWordsArray: Array = new Array (); // Contains allWords var, adskilt av ord private var currentWords: String; // Det gjeldende ordet som skal gjettes privat var fmt: TextFormat = new TextFormat (); // TextFormat privat var oss: Underscore; // Underskiktet klippet privat var usContainer: Sprite; // En beholder for underskriverne private var bokstaver: Array; // Bokstavene i det nåværende ordet private var tf: TextField; // TextField private var tfCont: Sprite; // Inneholder tekstfeltene private var tfs: Array = new Array (); Lagrer tekstfeltene som brukes til å fjerne dem private var tusen: Tween; // Tween, for animasjon private var mellomrom: int = 0; // Lagre mellomromene i gjeldende ord (er) private var arrayIndex: int; // Lagre ordene som ikke er brukt private var opt ioner: OptionsView; // Alternativene vis klippet privat var om: AboutView; privat var varsling: AlertView; privat var korrekt: int = 0; // De riktige ordene mot private var mislykkes: int = 0; // Mislykkes mot private var seier: int = 3; // Default victorys å vinne private var liv: int = 3; // Standard liv privat var alertIsOnStage: Boolean = false; // True hvis AlertView er i scenen

Trinn 23: Konstruktør

Konstruktøren er en funksjon som kjører når et objekt opprettes fra en klasse. Denne koden er den første som skal utføres når du lager en forekomst av et objekt, eller kjører ved hjelp av dokumentklassen.

 offentlig funksjon HangmanPlus (): void / * Må deklarere det nye arrayet i konstruktøren for å oppdage at elementene (array) er MovieClips i trinn * / knapper = nytt 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); / * Menyskjermknapper * / menuScreen.newGame.addEventListener (MouseEvent.MOUSE_UP, init); menyScreen.about.addEventListener (MouseEvent.MOUSE_UP, showAbView); menyScreen.options.addEventListener (MouseEvent.MOUSE_UP, showOptionsView); / * Lag tekstfelt for ord * / fmt.color = 0x282425; fmt.font = "Avenir 85 Heavy"; fmt.size = 18; hideParts (); // Skjuler hangman-delene

Trinn 24: Start funksjon

Denne funksjonen utføres når brukeren klikker på Ny spill-knappen.

 private funksjon init (e: MouseEvent): void addButtonListeners (knapper); // legger lytterne til tastaturet back.addEventListener (MouseEvent.MOUSE_UP, opBackHandler); // Legger til lytteren til tilbakeknappen loadTxt (kategorier [kategori] + ".txt"); // Laster tekstfilen fra arrayet, funksjonen opprettes senere categoryText.text = kategorier [kategori]; // Angir kategori tekstverdien, dette vises øverst i den grafiske kategorien for bærbare PCerLP .text = kategorier [kategori]; tween = new Tween (menyScreen, "y", Strong.easeOut, menysScreen.y, - menyScreen.height / 2,0.8, true); // Oppretter en tween som animerer MenyVis opp riktig = 0; // Tilbakestiller riktig og mislykkede gjetninger mislykkes = 0; 

Trinn 25: Start funksjonen på nytt

Denne funksjonen starter på nytt noen variabler og innstillinger for å laste et nytt ord, uansett om ordet gjettet eller ikke. Det kalles når ordet animasjon slutter.

 privatfunksjon omstart (e: TweenEvent): void / * Starter noen initial vars * / hideParts (); correctLetters = 0; addButtonListeners (knapper); prøver = 6; mellomrom = 0; tfs = ny Array (); removeChild (tfCont); // Fjerner tekstfeltene for ordet for (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(); 

Trinn 26: Last inn fil

Laster inn en tekstfil. Denne funksjonen utføres i trinn 24.

 privat funksjon loadTxt (fil: String): void txtLoader.load (ny URLRequest (fil)); txtLoader.addEventListener (Event.COMPLETE, parseTxt); // Legger til en lytter til å analysere teksten

Trinn 27: Parse Text

Parser teksten for å lage nødvendige underskrifter og tekstfelt.

 privat funksjon parseTxt (e: Event): void allWords = e.target.data; // Får dataene til txtLoader allWordsArray = allWords.split (","); / Splitter ordene, ordene i tekstfilen MÅ være UpperCase og kommaavskilt currentWords = allWordsArray [Math.floor (Math.random () * allWordsArray.length)]; // Setter et tilfeldig ord (e) til de nåværende Words variable letters = currentWords.split (""); / / Split bokstaver for å sammenligne alle til plass createUnderscores (currentWords); createTextfields (); 

Trinn 28: Back Button Actions

Tilbake-knappen fjerner unødvendige data, starter omstart av variabler og sender brukeren til menyskjermbildet.

 privat funksjon opBackHandler (e: MouseEvent): void / * Fjern varsel hvis den er i scene * / hvis (alertIsOnStage) removeChild (alert); alertIsOnStage = false;  tween = ny Tween (menyskjerm, "y", Strong.easeOut, menysScreen.y, stage.stageHeight / 2,1, true); // Animere tilbake menyvisningen back.removeEventListener (MouseEvent.MOUSE_UP, opBackHandler); // Fjern lytteren fra knappen removeButtonListeners (knapper); // Fjern tastaturlytterne hideParts (); // skjuler hangman-deler / * Start omstart av variabler, se omstartsfunksjon * / correctLetters = 0; prøver = 6; mellomrom = 0; tfs = ny Array (); removeChild (tfCont); for (var j: int = 0; j < keys; j++)  removeChild(icontainer[j]);  removeChild(usContainer); keys = 0; icontainer = new Array(); 

Trinn 29: Underscores

Denne funksjonen skaper underskrifter i henhold til bokstavene og mellomromene i det valgte ordet.

 privat funksjon createUnderscores (ord: String): void usContainer = new Sprite (); for (var jeg: 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); 

Trinn 30: TextFields

CreateTextfields () -funksjonen skaper de nødvendige tekstfeltene for å vise et enkelt bokstav i ordet (e) i hver enkelt.

 privat funksjon createTextfields (): void tfCont = new Sprite (); for (var jeg: 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); 

Trinn 31: Skjul deler Funksjon

La oss gjemme delene av hangmanen.

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

Trinn 32: Tastaturhandlinger

Dette er en kjernefunksjon. Det vil søke om bokstaven trykket er i gjeldende ord for å gjette, deaktiver nøkkelen, spille en nøkkellyd, legg til nøkkelen til scenen hvis den eksisterer, sjekk om ordet er fullført eller om sjansene er over.

 privat funksjon onKeyPress (e: MouseEvent): void / * Få og deaktiver nøkkel * / inactive = new Inactive (); inactive.x = e.target.parent.x; // Lagt til "foreldre" fordi flash gjenkjenner MC innenfor som "navn" inactive.y = e.target.parent.y; addChild (inaktiv); icontainer.push (inaktiv); nøkler ++; / * Spiller lyd * / btnSnd.play (); / * Sjekk om brev er på ord * / index = currentWords.search (new String (e.target.parent.name)); hvis (indeks! = -1) / * Brev er på ord * / 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");   

Trinn 33: Tastaturlyttere

Denne koden legger til tastaturlytterne.

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

Og dette fjerner lytterne.

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

Trinn 34: Korrekt ordfunksjon

Dette er funksjonen som skal utføres når brukeren gjipper et ord (er).

 privat funksjon seier (): void / * Sjekk for seier * / korrekt ++; hvis (riktig == seier) alert = new AlertView (); alert.alertDialog.title.text = "Du vinner"; alert.alertDialog.titleLP.text = "Du vinner"; alert.alertDialog.content.text = "Klikk denne dialogboksen for å lukke."; addChild (varsling); alertIsOnStage = true; tween = ny Tween (alert.alertDialog, "scaleX", Strong.easeOut, 0.5, 1, 0.5, true); // Viser alarmvarsel.addEventListener (MouseEvent.MOUSE_UP, opBackHandler);  andre tween = ny Tween (tfCont, "x", Strong.easeIn, tfCont.x, stage.stageWidth + tfCont.width, 0.5, true); // Animerer ordet og setter en ny en tween.addEventListener (TweenEvent .MOTION_FINISH, start på nytt); 

Trinn 35: Feil ordfunksjon

Dette er funksjonen som skal utføres når brukeren ikke korrekt gjipper ordet (e).

 privat funksjonsfeil (): void / * Sjekk for feil * / mislykkes ++; hvis (mislykkes == liv) alert = new AlertView (); alert.alertDialog.title.text = "Du mister"; alert.alertDialog.titleLP.text = "Du mister"; alert.alertDialog.content.text = "Klikk denne dialogboksen for å lukke."; addChild (varsling); alertIsOnStage = true; tween = ny 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, restart); 

Trinn 36: Valgvisning

Denne funksjonen håndterer animasjonene for visning av alternativer.

 privat funksjon showOptionsView (e: MouseEvent): void options = new OptionsView (); addChild (opsjoner); / * Dette er verdien av alternativene, hentet fra variablene * / options.category.text = kategorier [kategori]; options.victory.text = String (seier); options.lives.text = String (liv); tween = new Tween (alternativer, "x", Strong.easeOut, options.width, 0, 0.5, true); // Dette gjør at alternativvisningen vises fra høyre til venstre / * Knapplyttere * / 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);  / * Denne funksjonen skjuler OptionsView ved hjelp av en animasjon * / privat funksjon hideOptionsView (e: MouseEvent): void options.removeEventListener (MouseEvent.MOUSE_UP, hideOptionsView); tween = ny Tween (alternativer, "x", Strong.easeOut, 0, options.width, 0.5, true); tween.addEventListener (TweenEvent.MOTION_FINISH, removeOptionsView);  privat funksjon removeOptionsView (e: TweenEvent): void / * Fjerner barnet * / removeChild (alternativer); 

Trinn 37: Kategori Funksjon

Denne funksjonen endrer kategorien, og tar verdien fra kategoriene array.

 privat funksjon endringKategori (e: MouseEvent): void category ++; hvis (kategori> = categories.length) category = 0;  options.category.text = kategorier [kategori]; 

Trinn 38: Seier og Liv

Håndterer seieren og livstelleren, brukeren kan ha opptil 10 seire og 10 liv.

 privat funksjon changeVictory (e: MouseEvent): void victory ++; hvis (seier> 10) seier = 1;  options.victory.text = String (seier); // Setter verdien til tekstfeltet Private funksjon changeLives (e: MouseEvent): void lives ++; hvis (liv> 10) liv = 1;  options.lives.text = String (liv); // Setter verdien til tekstfeltet

Trinn 39: Om Vis

Disse funksjonene viser og skjuler Omvisning ved hjelp av en Tween-animasjon.

 privat funksjon showAboutView (e: MouseEvent): void about = new AboutView (); addChild (ca); tween = ny Tween (omtrent, "x", Strong.easeOut, -about.width, 0, 0.5, true); about.addEventListener (MouseEvent.MOUSE_UP, hideAboutView);  privat funksjon hideAboutView (e: MouseEvent): void about.removeEventListener (MouseEvent.MOUSE_UP, hideAboutView); tween = ny Tween (omtrent, "x", Strong.easeOut, 0, -about.width, 0.5, true); tween.addEventListener (TweenEvent.MOTION_FINISH, removeAboutView);  privat funksjon removeAboutView (e: TweenEvent): void removeChild (ca.); 

Trinn 40: Dokumentklasse

Gå tilbake til Fla og i Egenskaper Panel, legger klasse tekstfelt til "classes.Main". Dette vil koble hovedklassen som dokumentklassen.

Test ditt Hangman + Game nå!


Konklusjon

Du har opprettet et fullt utstyrt Hangman-spill i ActionScript 3; legg til dine egne kategorier og nyt!

Jeg håper du likte denne Premium-opplæringen, takk for å lese!