Dezvoltarea unui joc necesită o abilitate necesară dacă sunteți un dezvoltator Flash, folosiți multe metode și proprietăți ActionScript diferite, plus veți avea parte de multă distracție în acest proces! În acest tutorial, vă voi arăta cum să creați un joc Hangman avansat utilizând ActionScript 3.0. Să ne jucăm!
În timpul acestui tutorial Premium, voi demonstra procesul de dezvoltare a jocului din designul interfeței grafice folosind Flash Tools și un pic Photoshop, la partea de cod folosind puterea ActionScript 3.
Acestea sunt elementele interfeței grafice pe care o vom crea:
Creați un nou fișier Flash și setați dimensiunile acestuia la 320x480 px.
Selectați Text Tool (T) și alegeți un font de stil de desen animat, am folosit GoodDog 86 pt.
Scrie "Hangman +" și rupeți (Cmd + B) textul pentru a adăuga o culoare gradient.
Selectați graficele și deschideți panoul color, alegeți Gradientul liniar și utilizați aceste culori: # FBA31E, # FECB56.
Utilizați instrumentul Transformare gradient pentru a roti gradientul și pentru a obține o culoare, după cum se arată în imagine.
Repetați acest proces în "+" folosind aceste culori: # 831000, # A91101.
Conversia întregului lot la un filmClip și adăugarea unui filtru de umbră cu următoarele valori:
Veți ajunge cu ceva de genul:
Să creați fundalul.
Deschideți Photoshop și creați un fișier nou (320x480).
Selectați instrumentul Gradient (T) și adăugați un fond radiant maro (# 4E4236, # 382F26) începând de la centru la unul dintre margini.
Acum este timpul să adăugați un filtru de zgomot pentru a obține un fundal texturat.
Din meniu, accesați Filtrare> Zgomot> Adăugați zgomot și utilizați aceste valori:
Salvați imaginea ca png-24 utilizând opțiunea "Salvați pentru Web și dispozitive" din meniul Fișier.
Fundalul dvs. ar trebui să arate astfel:
Reveniți la Flash, importați (Cmd + R) fundalul și centrați-l.
Utilizați opțiunea Aranjare> Trimitere înapoi din meniul contextual (faceți clic dreapta) pentru a trimite fundalul în partea de jos și a afișa logo-ul creat anterior.
Selectați Rectangle Primitive Tool și creați un dreptunghi de 200x50 px cu același gradient galben ca înainte (# FBA31E, # FECB56).
Accesați Opțiuni dreptunghi în panoul Proprietăți și setați raza de colț la 8.00.
Conversia desenului în MovieClip și adăugarea următorului filtru:
Selectați instrumentul de text, creați un nou text static și scrieți "Joc nou". Am folosit acest format: Myriad Pro Semibold, 24 pt, # 831000.
Pentru a crea un efect de scriere a literelor, duplicați (Cmd + D) câmpul de text și mutați-l cu un pixel în jos, modificați culoarea textului în # FDDA8A.
Conversați-l în filmul MovieClip și centrați-l în scenă. Setați numele instanței la "newGame".
Repetați acest proces cu încă două butoane; Opțiuni și Despre. Nu uitați să schimbați numele instanțelor.
Transformați ceea ce aveți până acum la un MovieClip, denumiți-l "menScreen" și plasați-l temporar departe de scenă.
Aceasta este interfața jocului real, unde interacționați cu tastatura pentru a ghici cuvântul ascuns.
După cum vedeți, folosim același fundal, astfel încât să îl duplicăm și să îl centrăm în scenă.
Selectați instrumentul Rectangle Primitive, modificați raza de colț la 10 și desenați un dreptunghi 260x250 px. Adăugați un fundal radial (# FBEE84, # FDF9B2).
Pentru a face liniile, folosesc instrumentul Rectangle Tool și desenează un dreptunghi de 260x1 px cu culoarea # C6C970.
Duplicați linia (Cmd + D) și plasați-o cu 10 pixeli în jos, repetați acest lucru până când obțineți ceva asemănător cu următoarea imagine:
Pentru liniile laterale, creați un dreptunghi 1x250 px, # 99832E și plasați-l cu 20 de pixeli de la margine, duplicați-l și plasați-l pe noul 2 pixeli față de original.
Conversați acest lucru în filmul MovieClip, duplicați-l, trimiteți-l înapoi și plasați-l cu 5 px mai jos. Utilizați același filtru de butoane.
Acum vom da titlul notebook-ului; acest text se va schimba în funcție de categoria selectată în Opțiuni.
Selectați instrumentul Text, creați un text dinamic de text de 236x25 px și scrieți un text ca ghid. Formatul este Marker Felt 18 pt, # 663622.
Utilizați tehnica de tip letterpres pe care am folosit-o înainte pentru a adăuga detalii. Numele instanțelor sunt "categoryText" și "categoryLP" pentru câmpul de tip letterpress.
Pentru a desena hangmanul vom cheat un pic, deoarece Flash nu are perii sau ceva similar vom folosi un font pentru a desena stilul creion.
Am folosit caractere din fontul LeviCrayola pentru a desena aceasta:
Conversia fiecărei părți la un MovieClip și setarea numelor de instanțe astfel: cap, corp, leftArm, rightArm, leftLeg, rightLeg.
Puneți piesele Hangman în centrul laptopului și continuați cu pasul următor.
Intrarea utilizatorului va fi manipulată de o tastatură în etapa care va compară tasta apăsată pe ecranul ascuns.
Selectați instrumentul Primitiv dreptunghi și desenați un dreptunghi de 26x38 px cu fondul galben anterior, adăugați o rază de colț de 5.
Conversați-l în MovieClip și adăugați filtrul pentru butoane.
Adăugați litera corespunzătoare și utilizați tehnica de tipărire pentru a crea un buton mai bun. Formatul este Myriad Pro Semibold, 23 pt, Negru.
Transformați cele 2 elemente într-un filmClip și denumiți-l ca fiind Letter-ul pe care îl reprezintă în UpperCase.
Repetați acest pas cu toate literele, nu uitați să setați numele corect al instanței.
Vom crea, de asemenea, un filmClip care va apărea pe partea de sus a cheii atunci când este apăsat folosind același dreptunghi creat pentru cheie
Copiați și lipiți dreptunghiul și schimbați culoarea în alb, alfa 30%, marcați caseta "Export pentru ActionScript" și numiți-o "Inactiv".
Un sunet va fi, de asemenea, redat atunci când o tastă este apăsată.
Puteți găsi toate tipurile de sunete, inclusiv butoanele la AudioJungle, când găsiți un sunet care vă place, importați-l (Cmd + R) și în panoul Bibliotecă, faceți clic dreapta pe el și selectați "proprietăți", marcați caseta "Export pentru ActionScript" și scrie ButtonSound ca clasă.
Cheia din spate va șterge datele jocului și va duce utilizatorul la Ecranul meniului.
Creați o cheie folosind aceiași pași ca tastatura, convertiți-o în MovieClip și denumiți-o "înapoi".
Opțiunea Vizualizare opțiuni este afișată atunci când utilizatorul face clic pe butonul Opțiuni din meniul Ecran meniu. Se afișează informații despre unele opțiuni pentru joc.
Ar trebui să fie mai ușor să creați această viziune, deoarece deja avem toate grafica și fundaluri.
Opțiunea Categorie, după cum spune numele, descrie tipul de cuvinte care vor fi afișate la redare. Puteți utiliza un număr nelimitat de categorii, vom vedea că mai târziu în cod.
Opțiunea Victorie este numărul de cuvinte pe care trebuie să le ghiciți corect pentru a declara jocul ca fiind câștigat.
Opțiunea Lives este numărul de răspunsuri greșite pe care le puteți face înainte de a pierde jocul.
Această vizualizare are 6 TextField-uri, cele din stânga sunt Statice și formatate în felul următor: Marker Felt Thin, 19 pt, # 673723.
Cele drepte sunt Dinamice și sunt ascuțite astfel: Helvetica Regular, 15 pt, # 673723. (adăugați instanțe în imagine)
Butonul din spate va duce utilizatorul la ecranul meniului.
Creați un Static TextField cu același format ca cele de mai sus și modificați dimensiunea la 16 pt.
Convertiți-l în Button, denumiți-l "înapoi".
Butonul Mai mult va schimba valorile opțiunilor.
Creați un cerc alb 16x16 pixeli utilizând Instrumentul Oval (O).
Creați un alt cerc, de data aceasta 12x12, # 673723 și centrați-l.
Creați un dreptunghi înalt de 2px, cu lățimea de 5px și duplicați-l, rotiți -45 grade și rupeți-l în afară (Cmd + B) pentru a le face să se intersecteze, pentru a elimina zona nedorită pentru a face o săgeată și pentru ao centra.
Conversia în MovieClip și adăugarea următorului filtru:
Duplicați și plasați butoanele așa cum este prezentat în pasul 11 și denumiți-le: "catButton", "vicButton" și "livesButton".
Conversați-le pe toate la un clip video, bifați caseta de selectare "Export pentru ActionScript" și denumiți-o "OptionsView". Puteți șterge simbolul din scenă acum.
Ecranul Despre afișează informații despre creatorul, compania și versiunea aplicației.
Scalați logo-ul Hangman la 121x30.6 px și centrați-l.
Creați și centrați un Static TextField cu acest format: Helvetica Neue Regular, 15 pt, #EFEFEF și adăugați textul din imagine.
Transformați-le pe toate într-un filmClip, bifați caseta de selectare "Export pentru ActionScript" și denumiți-o "AboutView". Puteți șterge simbolul din scenă acum.
Vom afișa un mesaj când câștigați sau pierdeți, pentru că vom folosi această vizualizare Alertă.
Creați un dreptunghi de 320x240 px și utilizați acest gradient radial: # 000000 alpha 0, # 000000 alpha 50.
Apoi, creați un dreptunghi alb de 260x100 px cu o rază de colț de 20 px și plasați-l în mijlocul fundalului negru.
Duplicați dreptunghiul și faceți 256x96 px, # FCB73A alpha 90.
Creați un Dynamic TextField de 240x23 px și denumiți-l "titlu". Apăsați butonul "Align Center" din panoul Paragraf și utilizați tehnica letterpress, de această dată mutați câmpul text duplicat. Formatul este Helvetica Bold 19 pt, alb.
Utilizați un alt Dynamic TextField cu acest format: Helvetica Regular 15 pt, alb. Puneți-o în centru și utilizați opțiunea Align Center (Centru de aliniere).
Denumiți-l "conținut" și adăugați un text în câmpuri ca ghid.
Conversia tuturor la un filmClip, marcarea căsuței "Export pentru ActionScript" și denumirea acesteia "AlertView".
Plasați MenuScreen din nou în scenă și centrați-l. Ar trebui să fie pe partea de sus a graficii jocului.
E timpul pentru ActionScript. Creați un nou fișier ActionScript și salvați-l ca Main.as în folderul de clase.
clase de pachete
Cuvântul cheie al pachetului vă permite să vă organizați codul în grupuri care pot fi importate de alte scripturi. Se recomandă să le numim începând cu o literă mică și să folosim intercaps pentru următoarele cuvinte, de exemplu: myClasses.
Dacă nu doriți să grupați fișierele într-un pachet sau dacă aveți doar o singură clasă, puteți să le utilizați direct din folderul sursă, dar ideea trebuie organizată.
Acestea sunt clasele necesare. Pentru o descriere mai detaliată despre fiecare clasă, consultați Ajutorul 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; importul flash.events.MouseEvent; importul flash.events.Event; / * Import clase pentru animatii * / import fl.transitions.Tween; import fl.transitions.easing. *; import fl.transitions.TweenEvent;
extinde cuvântul cheie definește o clasă care este o subclasă a unei alte clase. Subclasa moștenește toate metodele, proprietățile și funcțiile, astfel încât le putem folosi în clasa noastră.
clasa publica HangmanPlus extinde Sprite
În acest exemplu, clasa HangmanPlus moștenește toate metodele și proprietățile din clasa Sprite.
Există o mulțime de variabile în acest joc, deoarece multe lucruri pot varia. Veți găsi tot ce este explicat în comentarii.
/ *, funcția încărcătorului va încărca un fișier text utilizând numele din acest matrice dacă doriți să adăugați o categorie, adăugați doar fișierul text în directorul în care Hangman + .swf este și numele fișierului în array * / private var categorii: Array = Array nou ("Fructe", "Animale", "Sport"); private var categorie: int = 0; // Această variabilă va fi modificată în Opțiuni, atunci când utilizatorul face clic pe butonul Mai mult 1 este adăugat, apoi folosit în matrice pentru a alege categoria corectă private var correctLetters: int = 0; Literele corecte au fost ghicite, vor fi comparate cu lungimea matricii pentru a verifica dacă cuvântul este complet privat: int = 6; // Numărul de încercări (cap, corp, două brațe, două picioare) private var btnSnd: ButtonSound = nou ButtonSound (); // Sunetul care va fi redat atunci când un buton de tastatură este apăsat privat var inactive: Inactiv; // Clipul pe care îl vom folosi pentru a bloca cheile deja apăsate private var icontainer: Array = Array nou ; // O matrice pentru stocarea clipurilor inactive pentru a elimina efectiv cheile private var: int = 0; // O variabila pentru a numara cheile deja inactive; acest var indica numarul "icontainer" pentru a indeparta indexul priv var: int ; // Stochează valoarea metodei String.search, folosită pentru a căuta tasta apăsată în cuvântul "private" butoane private var: Arr ay; // Gama de nume de butoane folosite pentru a adăuga toți ascultătorii cu ușurință private var txtLoader = new URLLoader (); // Aceasta va încărca fișierul text specificat var allWords: String; // Un șir cu toate cuvintele conținute în fișierul text privat var allWordsArray: Array = new Array (); // conține toate var, separat de cuvânt privat var currentWords: String; // Cuvântul curent (e) care trebuie ghicit privat var fmt: TextFormat = new TextFormat (); // TextFormat privat var us: Underscore; // Clipul de subliniere private var usContainer: Sprite; // Un container pentru literele private de var subliniere: Array; // Literele cuvântului curent privat var tf: TextField; // TextField private var tfCont: Sprite; // Conține câmpurile text privat var tfs: Array = new Array (); Stochează câmpurile de text folosite pentru a le elimina privat var tween: Tween; // Tween, pentru animații private spaces spaces: int = 0; // Stochează spațiile din cuvântul curent (e) private var arrayIndex: int; // Stochează cuvintele care nu au fost utilizate privat var opt ioni: OptiuniView; // Optiunea vizualizeaza clip priv var despre: AboutView; alertă privată var: AlertView; private var corect: int = 0; // Cuvintele corecte private var fails: int = 0; // Eșec counter private vic victory: int = 3; // Default victorys pentru a câștiga privat var vieți: int = 3; Implicit traieste privat var alertIsOnStage: Boolean = false; // Adevărat dacă AlertView este în stadiu
Constructorul este o funcție care rulează atunci când un obiect este creat dintr-o clasă. Acest cod este primul care se execută când faceți o instanță a unui obiect sau executați utilizând Clasa de documente.
Funcția publică HangmanPlus (): void / * Trebuie să declare noul Array în constructor pentru a detecta că elementele (array) sunt MovieClips în Stage * / buttons = Array nou (A, B, C, D, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z); / * Butoanele meniului ecranului * / menuScreen.newGame.addEventListener (MouseEvent.MOUSE_UP, init); menScreen.about.addEventListener (MouseEvent.MOUSE_UP, showAboutView); menScreen.options.addEventListener (MouseEvent.MOUSE_UP, showOptionsView); / * Crearea de câmpuri text pentru cuvânt * / fmt.color = 0x282425; fmt.font = "Avenir 85 Heavy"; fmt.size = 18; hideParts (); // Ascunde părțile agățate
Această funcție este executată atunci când utilizatorul face clic pe butonul Nou joc.
funcția privată init (e: MouseEvent): void addButtonListeners (butoane); // Adaugă ascultătorii la tastatura back.addEventListener (MouseEvent.MOUSE_UP, opBackHandler); // Adaugă ascultător la butonul din spate loadTxt + ".txt"); // Încarcă fișierul text din matrice; funcția este creată mai târziu categoryText.text = categories [category]; // Setează valoarea textului categoriei, aceasta este afișată în partea de sus a categoriei grafice notebookLP .text = categorii [categorie]; tween = nou Tween (menScreen, "y", Strong.easeOut, menuScreen.y, - menuScreen.height / 2,0,8, true); // Creează o animație tween animată MenuView up = 0; eșecuri ghicesc eșuează = 0;
Această funcție repornește unele variabile și setări pentru a încărca un cuvânt nou, indiferent dacă cuvântul a fost ghicit sau nu. Se numește când se termină animația.
restartarea funcției private (e: TweenEvent): void / * Reinițializează unele vars inițial * / hideParts (); corectLetters = 0; addButtonListeners (butoane); încercări = 6; spații = 0; tfs = Array nou (); removeChild (tfCont); // Elimină câmpurile de text ale cuvântului pentru (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();
Încarcă un TextFile. Această funcție este executată în pasul 24.
funcția privată loadTxt (fișier: String): void txtLoader.load (nou URLRequest (fișier)); txtLoader.addEventListener (Event.COMPLETE, parseTxt); // Adăugă un ascultător pentru parsarea textului
Parcurge textul pentru a crea sublinierile și câmpurile de text necesare.
funcția privată parseTxt (e: Event): void allWords = e.target.data; // Obține datele din txtLoader allWordsArray = allWords.split (","); // Împărțiți cuvintele, TREBUIE să fie UpperCase și separat cu virgulă currentWords = allWordsArray [Math.floor (Math.random () * allWordsArray.length)]; // Setează un cuvânt aleatoriu la variabila curentă literals letters = currentWords.split (""); / / Împărțiți literele pentru a compara pe toți cu spațiul createUnderscores (currentWords); createTextfields ();
Butonul Înapoi elimină datele inutile, repornește variabilele și trimite utilizatorul în ecranul meniului.
funcția privată opBackHandler (e: MouseEvent): void / * Eliminați alerta dacă este în stadiu * / if (alertIsOnStage) removeChild (alert); alertIsOnStage = false; tween = nou Tween (menScreen, "y", Strong.easeOut, menuScreen.y, stage.stageHeight / 2,1, true); // Animați înapoi meniul View back.removeEventListener (MouseEvent.MOUSE_UP, opBackHandler); // Eliminați ascultătorul din butonul removeButtonListeners (butoane); // Eliminați ascultătorii tastaturii hideParts (); // ascunde piese de hangman / * Restart variabile, vezi funcția de repornire * / correctLetters = 0; încercări = 6; spații = 0; tfs = Array nou (); removeChild (tfCont); pentru (var j: int = 0; j < keys; j++) removeChild(icontainer[j]); removeChild(usContainer); keys = 0; icontainer = new Array();
Această funcție creează sublinierile în funcție de literele și spațiile din cuvântul ales (ele).
funcția privată createUnderscores (cuvinte: String): void usContainer = new Sprite (); pentru (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);
Funcția createTextfields () creează TextFields necesare pentru a afișa o singură literă a cuvântului (cuvintelor) din fiecare.
funcția privată createTextfields (): void tfCont = nou Sprite (); pentru (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);
Să ascundem părțile hangmanului.
funcția privată hideParts (): void body.visible = false; head.visible = false; leftArm.visible = false; leftLeg.visible = false; rightArm.visible = false; rightLeg.visible = false;
Aceasta este o funcție de bază. Acesta va căuta dacă scrisoarea apăsată este în cuvântul actual pentru a ghici, dezactiva cheia, reda un sunet cheie, adăuga cheia în scenă în cazul în care există, verificați dacă cuvântul este complet sau dacă s-au terminat șansele.
funcția privată onKeyPress (e: MouseEvent): void / * Obțineți și dezactivați tasta * / inactive = new Inactive (); inactive.x = e.target.parent.x; // Adăugat "părinte" deoarece flash recunoaște MC în interiorul ca "nume" inactive.y = e.target.parent.y; addChild (inactive); icontainer.push (inactive); chei ++; / * Redă sunet * / btnSnd.play (); / * Verificați dacă litera este pe cuvânt * / index = currentWords.search (nou String (e.target.parent.name)); dacă (index! = -1) / * Scrisoarea este pe cuvântul * / pentru (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");
Acest cod adaugă ascultătorii tastaturii.
funcția privată addButtonListeners (array: Array): void pentru (var i: int = 0; i < array.length; i++) array[i].addEventListener(MouseEvent.MOUSE_UP, onKeyPress);
Iar aceasta îndepărtează ascultătorii.
funcția privată removeButtonListeners (array: Array): void pentru (var i: int = 0; i < array.length; i++) array[i].removeEventListener(MouseEvent.MOUSE_UP, onKeyPress);
Aceasta este funcția care se va executa atunci când utilizatorul ghicește corect un cuvânt (cuvinte).
funcția privată câștiga (): void / * Verificați pentru victorie * / corect ++; dacă (corect == victorie) alert = new AlertView (); alert.alertDialog.title.text = "Câștigi"; alert.alertDialog.titleLP.text = "Câștigi"; alert.alertDialog.content.text = "Faceți clic pe acest dialog pentru a închide."; addChild (alertă); alertIsOnStage = adevărat; tween = nou Tween (alert.alertDialog, "scaleX", Strong.easeOut, 0.5, 1, 0.5, true); // Afișează Alert View alert.addEventListener (MouseEvent.MOUSE_UP, opBackHandler); altfel tween = nou Tween (tfCont, "x", Strong.easeIn, tfCont.x, stage.stageWidth + tfCont.width, 0.5, true); .MOTION_FINISH, reporniți);
Aceasta este funcția care se va executa atunci când utilizatorul nu reușește să ghicească corect cuvântul (termenii).
funcția privată eșuează (): void / * Verifică dacă eșuează * / nu reușește ++; dacă (eșuează == viața) alert = new AlertView (); alert.alertDialog.title.text = "Pierdeți"; alert.alertDialog.titleLP.text = "Pierdeți"; alert.alertDialog.content.text = "Faceți clic pe acest dialog pentru a închide."; addChild (alertă); alertIsOnStage = adevărat; tween = noul Tween (alert.alertDialog, "scaleX", Strong.easeOut, 0.5, 1, 0.5, true); alert.addEventListener (MouseEvent.MOUSE_UP, opBackHandler); altceva tween = Tween nou (tfCont, "x", Strong.easeIn, tfCont.x, stage.stageWidth + tfCont.width, 1, true); tween.addEventListener (TweenEvent.MOTION_FINISH, reporniți);
Această funcție se va ocupa de animațiile Opțiuni Vizualizare.
funcția privată showOptionsView (e: MouseEvent): void options = new OptionsView (); addChild (opțiuni); / * Acestea sunt valorile opțiunilor, luate din variabilele * / options.category.text = categories [category]; options.victory.text = Șir (victorie); options.lives.text = Șir (trăiește); tween = new Tween (opțiuni, "x", Strong.easeOut, options.width, 0, 0.5, true); // Aceasta face vizualizarea opțiunilor să apară de la dreapta la stânga / * Butoane ascultători * / 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); / * Această funcție ascunde OpțiunileView utilizând o funcție de animație * / privată hideOptionsView (e: MouseEvent): void options.removeEventListener (MouseEvent.MOUSE_UP, hideOptionsView); tween = Tween nou (opțiuni, "x", Strong.easeOut, 0, opțiuni.width, 0.5, true); tween.addEventListener (TweenEvent.MOTION_FINISH, removeOptionsView); funcția privată removeOptionsView (e: TweenEvent): void / * Elimină copilul * / removeChild (opțiunile);
Această funcție schimbă categoria, luând valoarea din matricea categoriilor.
schimbarea funcției privateCategorie (e: MouseEvent): void category ++; dacă (categoria> = categories.length) category = 0; options.category.text = categories [category];
Manipulează victoria și trăiește contra, utilizatorul poate avea până la 10 victorii și 10 vieți.
schimbarea funcției privateVictorie (e: MouseEvent): void victory ++; dacă (victorie> 10) victorie = 1; options.victory.text = String (victorie); // Setează valoarea la textfield funcția privată changeLives (e: MouseEvent): void lives ++; dacă (trăiește> 10) viața = 1; options.lives.text = String (lives); // Setează valoarea în câmpul text