Lecții despre dezvoltarea jocurilor flash. Editore de cod alternative. Mașini virtuale și JavaScript

Programare flash

program de curs opțional și manual didactic pentru profesor și elev

Programul cursului. 1

1. Introducere: 1

2. Subiecte de curs: 2

3. Literatură: 2

Manual didactic pentru profesori și elevi. 2

1. Introducere, fereastra „acțiuni în cadru”. 2

2. Variabile. 4

3. Câmpuri I/O. 5

4. Operator condiționat. 8

5. Bucle „cu un parametru” și bucle „while”. unsprezece

7. Programare orientată pe obiecte. 17

8. Schimbarea programului proprietăți. 19

9. Cicluri cu trei cadre. Animație software. 22

10. Proiectul " Joc interactiv- Tyr. 24

Programul cursului

1. Introducere:

Program Macromedia Flash uimește prin capacitățile sale. Pe lângă instrumentele avansate de desen și animație, Flash are încorporat un limbaj de programare Action Script. Stăpânirea acestui limbaj vă permite nu numai să creați animație de program, jocuri Flash și pagini web interactive, ci vă oferă și cunoștințe despre tehnologiile de programare orientată pe obiecte (denumite în continuare OOP).

În ciuda faptului că creatorii Flash au încercat să simplifice programarea chiar și pentru un utilizator neinstruit, stăpânirea acestor instrumente necesită destul de mult timp. Acest curs este opțional; studenții îl aleg pentru a face o alegere mai informată a unei specializări în liceu. Studiul detaliat al programului, implementarea unor proiecte serioase poate fi sarcina cursurilor de specialitate (de exemplu, „Programare web”, „Design web”, „Programare orientată pe obiecte”, etc.), precum și auto-studiu. Cursul de Programare Flash este destinat elevilor de clasa a IX-a care sunt deja familiarizați cu animația Flash și noțiunile de bază ale programării. Ca parte a cursului opțional, este foarte posibil să stăpânești elementele de bază ale programării, tehnologia OOP și să implementezi proiecte simple în Flash. Cursul include 8 proiecte, inclusiv un proiect de calculator Flash și un proiect de joc interactiv. Cursul este dotat cu un manual didactic pentru profesori și studenți.

Scopul cursului:

Să intereseze elevii, să arate posibilitățile modernului software pentru a crea aplicații interactive; introduceți elementele de bază ale programării orientate pe obiecte; Aprofundarea cunoștințelor despre Macromedia Flash.

Obiectivul cursului:

Introducerea tehnologiei de programare orientată pe obiecte; arătați utilizarea Action Script pentru a crea aplicații interactive; creați două proiecte: un calculator Flash și un joc interactiv în galerie de împușcături.

Cerințe de cunoștințe ale elevilor:

Pentru a finaliza cu succes acest curs, studenții trebuie să aibă cunostinte de baza despre Flash: crearea de imagini simple, lucrul cu simbolurile bibliotecii, înțelegerea cadrelor cheie, animația Flash, acțiunile de bază în Action Script.

Pentru a finaliza cu succes acest curs, studenții trebuie să aibă cunoștințe de bază de programare: să stăpânească concepte precum algoritm, program, variabilă și să cunoască structuri algoritmice de bază.

Cerințe de calculator:

Computer cu programul instalat Macromedia Flash MX (sau mai mare).

Cursul „Programare Flash” este conceput pentru 12 ore.

2. Subiecte de curs:

Subiecte

număr de ore

Repetați Flash.

Câmpuri I/O, structuri algoritmice

tipuri de câmp (static, dinamic, de ieșire); declararea variabilelor, caracterelor și variabilelor numerice, adăugarea de cod la un buton, operator condițional, buclă cu un parametru, while loop, implementarea lor în Flash.

sarcini tipice: calculul costurilor de zbor, soluție ecuație pătratică, ridicarea la o putere, aflarea elementului unei serii al sumei unei serii

proiect: Calculator Flash

Concepte de bază ale POO

obiect, proprietăți, metodă, eveniment

Schimbarea programatică a proprietăților. Animație software.

proprietăți modificabile; crearea de simboluri, numele acestora; modificarea proprietăților caracterelor, caracteristicile execuției codului de program în Flash, cicluri cu trei cadre.

Sarcini tipice: crearea unui obiect cu proprietăți modificabile (apăsarea tastelor corespunzătoare). crearea unui obiect în mișcare.

proiect: Joc interactiv Shooting Range.

3. Literatură:

Beluntsov V. Macromedia Flash: Animație pe Internet. „DESS Com”, Moscova 2001. Materiale Flash MX 2004 de pe site-ul www. *****

Manual didactic pentru profesor și elev

1. Introducere, Paleta de acțiuni

Macromedia Flash are propriul limbaj de programare, Action Script. Vă permite să faceți videoclipuri Flash interactive. Capacitățile limbajului sunt destul de mari, ceea ce vă permite să creați programe serioase. Scriptul de acțiune nu este limbaj independent programare. Este un set de scripturi - fragmente de cod care „trăiesc” doar în interiorul unui film Flash, care, totuși, nu interferează cu crearea de programe cu drepturi depline.

Trebuie să rețineți că Action Script este un limbaj bazat pe evenimente, adică scriptul va fi executat atunci când are loc un eveniment. Un astfel de eveniment ar putea fi realizarea unui anumit cadru cheie, de exemplu, în ultimul cadru cheie adăugăm comanda stop(). În ciuda faptului că aceasta este doar o comandă, acesta este un script cu drepturi depline care va fi executat când se ajunge la ultimul cadru - videoclipul se va opri. Un alt eveniment ar putea fi un clic pe mouse butonul ecranului sau apăsând o tastă de la tastatură.

A adauga codul programului trebuie să selectați cadrul cheie în care doriți să adăugați scriptul (sau să selectați butonul creat) și să apăsați tasta F9 (Figura 1).

Orez. 1 Panou de acțiuni.

Să ne uităm la elementele principale ale ferestrei Acțiune. Partea stângă a ferestrei este ocupată de o listă de comenzi pe care le poți selecta făcând dublu clic pe ele cu butonul stâng al mouse-ului. Toate comenzile, și sunt destul de multe dintre ele, sunt grupate în douăsprezece blocuri „Funcție globală”, „Proprietăți globale”, etc. După ce faceți clic, comanda este transferată în partea dreapta fereastră. Conține codul programului. Puteți elimina comenzile inutile ( Șterge cheia) sau deplasați în sus și în jos scriptul folosind fie tastele cursor, fie butoanele. Desigur, comanda de mutat sau șters trebuie mai întâi evidențiată. Partea de jos ferestrele sunt date peste parametri modificabili fiecare echipă specifică. De exemplu, în comanda de tranziție gotoAndPlay() trebuie să indicați la ce cadru să mergeți când ajungeți la această linie. Pentru a face acest lucru, trebuie să introduceți numărul de cadru necesar între paranteze.

Când scrieți codul programului, este mai convenabil și mai rapid să introduceți codul manual. Este important să rețineți că ActionScript ține seama de majuscule și minuscule în comenzile pe care le introduceți. Aceasta înseamnă că comanda GoToandPlay() va fi incorectă.

Rămâne de adăugat că pentru a rula codul și a vizualiza rezultatul, trebuie să intrați în modul de vizionare video, pentru a face acest lucru, apăsați combinația de taste Ctrl-Enter.

Întrebări de revizuire:

Ce este un scenariu? Ce evenimente declanșează execuția codului în Flash? Cum afișez paleta Acțiune? Din ce elemente constă paleta Action? Cum se creează un fișier care poate fi lansat dintr-un film Flash?

2. Variabile

Unul dintre conceptele de bază ale oricărui limbaj de programare este o variabilă. Se presupune că cititorul este familiarizat cu conceptul de variabilă, așa că haideți să vedem cum este implementat în Flash.

Să presupunem că vrem să adunăm două numere. Pentru a efectua această operație aritmetică simplă, creați un buton în primul cadru cheie: desenați un dreptunghi, faceți o legendă și apoi convertiți imaginea rezultată într-un simbol (inserați meniul - convertiți în simbol, nu uitați să setați comportamentul simbol - buton). Ca urmare, a apărut un obiect care poate răspunde la un clic de mouse, acest lucru poate fi verificat cu ușurință prin intrarea în modul de vizionare video.

Primul număr va fi stocat în variabila x1, iar al doilea în variabila x2. Lăsați rezultatul să fie salvat sub numele summa și afișat pe ecran. Pentru a crea un câmp de ieșire (mai multe despre asta în lecția următoare), faceți clic pe instrumentul de text și utilizați-l pentru a selecta o zonă a ecranului - câmpul de text viitor. Apoi accesați panoul plutitor Symbol (fereastra de meniu - panouri - simbol) și în fila Opțiuni text schimbați tipul câmpului text Stutic Text în Dimamic Text (Figura 2). Asigurați-vă că denumiți acest câmp Variabilă – suma. De asemenea, pentru a face câmpul vizibil pe ecran, bifați caseta de selectare cadru/fond.

Orez. 2 Creați un câmp dinamic pentru a afișa valori.

Acum să comparăm codul cu butonul pe care l-am creat. Selectați butonul și apăsați F9.

În partea din stânga a ferestrei, selectați blocul Operațiuni – Setare variabilă. În partea de jos a ferestrei setăm parametrii: variabilă – x1, valoarea 5. Vă rugăm să rețineți că lângă câmpul de valoare există o expresie de comutare a parametrului. Trebuie selectat, altfel variabila x1 va stoca numărul 5 și simbolul. Acesta este modul în care este setat tipul unei variabile. După cum înțelegeți, în AS există doar două tipuri de variabile, numerice și șir, descrieți tipurile în avans, așa cum este obișnuit în limbaj Turbo Pascal. Efectuați acțiuni similare pentru a doua variabilă, respectiv, numele acesteia este x2, iar valoarea este 8. Trebuie doar să adăugăm a treia linie - setați a treia variabilă, numele ei: summa (la fel ca și numele câmpului de ieșire) , valoare: x1 + x2, desigur, expresia elementului selectat.

Ca urmare a acestor operațiuni, în partea dreaptă aveți codul prezentat în figură (Figura 3). Vă rugăm să rețineți că fiecare comandă este separată de un punct și virgulă. Mai întâi este comanda on (release), aceasta arată asta acest cod va începe să se execute când butonul mouse-ului este eliberat de pe buton. Deoarece acest cod este mapat la un buton de pe ecran, atunci această comandă este adăugată automat. După aceea, între acolade vine codul care ar trebui să fie executat atunci când are loc evenimentul.

Asta e tot! Dacă ați făcut totul corect, atunci accesând modul de vizionare video și făcând clic pe butonul dvs., în câmpul de ieșire apare numărul 13.

Întrebări de revizuire:

Cum să setați un nume de variabilă pentru text sau text informatii numerice? Ce tipuri de variabile sunt folosite în Flash? Cum să arăți că variabila creată este numerică? Cum se creează un buton în Flash și se adaugă cod pentru el? Ce înseamnă comanda on (release) de la începutul scriptului?

3. Câmpuri I/O

Învățarea unui nou limbaj de programare începe cu scrierea programelor în care sunt introduse valori inițiale, apoi se produc unele transformări aritmetice cu acestea și rezultatul este afișat pe ecran. Flash folosește câmpuri de text pentru a afișa text pe ecran. Pentru a crea un câmp de text, trebuie să selectați instrumentul Text (pe bara de instrumente) și plasând cursuri în locul în care doriți să adăugați text, „desenați” un bloc de text (Figura 4).

Orez. 4 Creați un câmp de text.

Ca rezultat, aveți un câmp de text static în care puteți introduce orice text. Există trei tipuri de câmpuri de text: câmpuri statice, dinamice și de ieșire. Tipul câmpului este setat folosind fila „parametri”, panoul de simboluri (vezi capitolul anterior). Să ne uităm la scopul și setările fiecărui câmp mai detaliat:

Un câmp static este folosit pentru a afișa etichete pe o scenă Flash. După cum sugerează și numele, acest câmp nu poate fi modificat programatic. Tot ceea ce vă este la dispoziție este să setați fontul, dimensiunea, culoarea etc. La tastare, acest câmp se va extinde automat, afișând textul introdus pe mai multe rânduri. În acest caz, lățimea câmpului de text va rămâne cea pe care o setați atunci când „desenați” blocul de text. Pentru a-l schimba, trebuie să selectați blocul cu instrumentul Text și să mutați marcatorul din dreapta sus al blocului de text.

Figura 5

Un câmp dinamic este folosit pentru a crea câmpuri de ieșire în care informațiile pot fi actualizate pe măsură ce videoclipul progresează. Pentru a accesa un bloc de text în mod programatic, acesta trebuie să aibă un nume, care este specificat în câmpul „variabilă” (Figura 5). Vă sfătuiesc să folosiți doar caractere latine ca nume de variabile, fără spații. În aceeași fereastră, puteți activa proprietatea Border/Background. Acum va apărea un cadru pe foaia în care va apărea textul afișat, acest lucru este foarte convenabil. Caseta combinată, cu o singură linie selectată în mod implicit, vă permite să specificați dacă textul va fi afișat pe o linie sau pe mai multe (valoarea MultiLine). Comutatorul selectabil, care este activat implicit, determină dacă utilizatorul poate selecta valori din a acestui domeniu, de exemplu, pentru a le copia în clipboard. La fel ca pentru orice câmp, puteți seta parametri de text: font, dimensiune, culoare etc. Dacă introduceți orice text în acest câmp, acesta va fi afișat până când programul își va schimba valoarea.

Un câmp de introducere sau un text de intrare este folosit pentru a introduce valori de la tastatură. Fereastra parametrilor câmpului de intrare arată similar cu fereastra discutată mai sus. Parametrul principal aici este și câmpul „variabil”. Specificați sub ce nume vor fi înregistrate datele introduse de utilizator.

Figura 6

Înțelegând scopul câmpurilor de text, puteți realiza următorul proiect. „Costul unui bilet de avion pentru adulți, precum și numărul de adulți și copii care călătoresc pe zbor sunt introduse în computer. Când faceți clic pe butonul corespunzător, computerul calculează costul biletului unui copil (50% din costul unui adult) și costul total al zborului.” Uite aspect programe (Figura 6). După cum puteți vedea cu ușurință în această sarcină, valorile sunt introduse și rezultatele sunt afișate, tot codul trebuie executat atunci când este apăsat un buton și, prin urmare, trebuie să fie asociat cu acest buton.

Pentru a începe, creați cinci câmpuri de text statice și completați-le cu textul corespunzător.

Creați trei câmpuri de intrare, oferiți variabile pentru fiecare câmp nume unice, de exemplu: stv (prețul biletului pentru adulți), kolv (numărul de adulți) și kold (numărul de copii).

Creați două câmpuri dinamice, dați variabilelor pentru fiecare câmp nume unice, de exemplu: std (prețul biletului pentru copii) și itog (cantitatea totală a zborului).

Faceți două butoane „calculați costul zborului” și „ștergeți câmpurile”

Pentru primul buton, adăugați următorul cod (buton, tasta dreapta - operații):

dacă (stv==null) (

dacă (kolv==null) (

dacă (kold==null) (

itog = stv * kolv + std * kold;

Penultima linie calculează costul unui bilet pentru copii (jumătate din costul unui adult) și scrie această valoare în variabila std (numele câmpului de ieșire corespunzător). Ultima linie calculează suma totală (variabila itog) și introduce valoarea acesteia în câmpul de ieșire corespunzător.

În principiu, a fost posibil să se descurce cu aceste două linii de cod. Dar din moment ce persoana care va lucra cu acest program nu va introduce neapărat numărul zero dacă copiii nu sunt implicați în zbor. Aceasta înseamnă că costul biletului unui copil ( valoare numerica) va fi înmulțit cu valoare goală(valoarea șirului). Rezultatul acestei „înmulțiri” va fi un mesaj de eroare în câmpul de ieșire corespunzător. Pentru a preveni acest lucru, computerul verifică dacă câmpul de intrare este gol (kold==null) și, dacă da, atribuie valoarea egală cu zero variabilei kold. Această construcție se numește operator condiționat. Citiți mai multe despre ea în următorul subiect. Dacă încă îți este greu să lucrezi cu condiții, le poți omite, dar nu uita, nu ar trebui să existe câmpuri goale!

Pentru a finaliza proiectul, vom adăuga codul corespunzător pentru butonul „Șterge câmpurile”:

După cum puteți vedea, când faceți clic pe acest buton, fiecărei variabile și, prin urmare, câmpului I/O, i se va atribui o valoare goală (nu există nimic între cele două ghilimele).

Întrebări de revizuire:

Ce tipuri de casete de text sunt folosite în Flash? Ce parametri modificabili are un câmp de text dinamic? Ce tip de câmp este folosit pentru a introduce valori de la tastatură? Explicați semnificația următoarei linii de cod: itog = stv * kolv + std * kold;? De ce este descris operatorul condiționat utilizat în proiect?

4. Operator condiționat

Codul programului la care ne-am uitat înainte este liniar. Fiecare comandă este executată numai după ce acțiunea anterioară a fost finalizată. În viață totul este puțin mai complicat. Deschidem o umbrelă dacă plouă, ne bucurăm dacă ne atingem scopul și calculăm rădăcinile unei ecuații pătratice dacă discriminantul este mai mare decât zero. În toate cazurile de mai sus, acționăm într-un fel sau altul. Pentru a implementa astfel de situații, toate limbajele de programare oferă un operator de ramură sau un operator condiționat. Action Script nu face excepție.

Figura 7

Operatorul condiționat este apelat făcând clic pe comanda Operations - If (Figura 7). Următoarea structură apare în partea dreaptă a ferestrei:

dacă (<Не установлено>) {

În loc de<не установлено>trebuie să scrieți o operație de comparare, o introduceți în câmpul „Condiție”. Un exemplu de astfel de condiție ar putea fi z<10, (переменная z меньше десяти).

Să ne uităm la operațiunile de bază de comparare:

> mai putin;

< больше;

>= mai mare sau egal cu;

<= меньше либо равно;

Egal (observați cele două semne egale);

Nu este egal (rețineți că semnul exclamării înseamnă negația operatorului de comparație care îl urmează).

Adesea, mai multe condiții trebuie îndeplinite simultan. Pentru aceasta, se folosesc operații booleene (logice):

&& sau și – ȘI logic;

|| sau sau – SAU logic;

Sau nu – logic NU.

De exemplu, condiția (a == 10) && (z > 5) va fi adevărată numai atunci când variabila a este egală cu zece și, în același timp, variabila z este mai mare de cinci.

O condiție este o întrebare la care pot exista doar două răspunsuri, „da” și „nu”. Dacă condiția este adevărată, atunci acțiunile conținute în bretele.

Dacă trebuie să adăugăm un grup de comenzi care ar trebui să fie executate atunci când condiția este falsă, trebuie să adăugați Operations - Else. Apoi fragmentul de cod va arăta astfel:

dacă (<Не установлено>){

Pentru a adăuga comenzi, trebuie să poziționați cursorul peste linia în care ar trebui să apară comanda. Tot ce trebuie să faci este să alegi comanda corectăîn blocul corespunzător și faceți clic pe el cu mouse-ul.

Figura 8

Să luăm în considerare modul în care principiile enunțate sunt implementate pentru a rezolva problema clasică de găsire a rădăcinilor unei ecuații pătratice. „În computer sunt introduse trei numere - parametrii ecuației pătratice ax2 + bx + c = 0. Pe baza datelor introduse, computerul determină câte rădăcini are această ecuație, le calculează și afișează rezultatele pe ecran. Prezentat vedere aproximativă fereastra programului (Figura 8).

Pentru a finaliza acest proiect:

Creați trei câmpuri de intrare în primul cadru de pe scena principală și dați-le nume adecvate: a, b, c. Faceți-le vizibile granițele.

Creați câteva câmpuri de text statice pentru a eticheta câmpurile I/O: x2, =0, discriminant etc.

Creați patru câmpuri de text dinamice: d – discriminant, r – soluție, x1 – valoarea primei rădăcini, x2 – valoarea celei de-a doua rădăcini.

Creați două butoane „rezolvați ecuația” și „ștergeți”.

Pentru primul buton „rezolvare ecuație”, adăugați următorul cod de program, text marcat cu un apostrof - un comentariu, nu este necesar să-l inserați:

dacă (a == nul) (

dacă (b == nul) (

dacă (c == nul) (

‘ primele trei instrucțiuni condiționale verifică dacă câmpurile a, b, c sunt goale,

Dacă da, le atribuie valori numerice egal cu zero

‘ se calculează discriminantul (variabila d).

r = „fără rădăcini”;

‘ dacă condiția este îndeplinită – discriminantul este mai mic decât variabila d

‘ acceptă corespunzătoare valoarea textului

) altfel dacă (d == 0) (

r = „o rădăcină”;

x1 = (-b)/(2*a);

x2 = (-b)/(2*a);

‘ este folosită comanda Operations – Else If. Mulțumită lui, următoarele

acțiunea începe cu verificarea stării. Dacă este adevărat – discriminant

‘ este egal cu zero, se fac calcule similare, variabile legate

' Cu câmpuri de text luați valorile corespunzătoare

r = „două boabe” + Chr(255);

„cea mai misterioasă linie. Este necesar ca inscripția „două rădăcini” să fie afișată,

Dar am avut ghinion cu litera rusă ya. Flash acceptă codul respectiv

‘ corespunde acestei litere ca o întrerupere de linie.

' În acest scop, valoarea caracterului 255 este adăugată șirului de text. Acest

‘acțiune – conexiune a doi șiruri de text numită concatenare.

kd = Math. sqrt(d);

x1 = (-b+kd)/(2*a);

x2 = (-b-kd)/(2*a);

' a calcula rădăcină pătrată S-a folosit comanda Math. sqrt(d);

‘ pentru a o numi folosiți comanda Objects – Mathematics – Sqrt

Tot ce trebuie să facem este să adăugăm următorul cod pentru al doilea buton:

Mi se pare că comentariile de aici sunt inutile. Proiectul este gata. Salvează-l, testează-l.

Întrebări de revizuire:

Ce construct definește o instrucțiune condiționată în Flash? Care este diferența dintre construcții: dacă (<Не установлено>)() else() și dacă (<Не установлено>))? Cum setați negația în Flash? Ce sunt operațiunile booleene și cum sunt ele scrise în Flash? Care este diferența dintre liniile: a=10 și a==10?

5. Bucle „cu un parametru” și bucle „while”

Pentru a efectua acțiuni repetitive, limbajele de programare folosesc constructe speciale numite operatori de buclă. Există mai multe astfel de construcții ciclice, vom lua în considerare cele două cele mai comune: bucla „cu parametru” și bucla „while”. Să vedem cum sunt implementate în limbajul Action Script.

O buclă „cu un parametru” este utilizată atunci când se știe dinainte de câte ori trebuie efectuată o anumită acțiune. Puteți desena următoarea analogie - pentru a pregăti supa, trebuie să curățați șase cartofi. Dacă scriem acțiunile în formular algoritm liniar, atunci veți observa că comenzile „luați cartofii”, „curățați coaja”, „spălați” se vor repeta de șase ori. Pentru a face algoritmul mai compact și, de asemenea, pentru a putea fi schimbat cu ușurință în viitor, este mai logic să scrieți acest lucru sub forma unei bucle:

Repetați (de 6 ori) (

„ia cartofii”;

„coaja pielea”;

"a spala";

Aici numărul șase este parametrul ciclului, numărul de repetări. Ceea ce este între acolade sunt comenzi repetabile. Vor fi executați de exact șase ori.

Figura 9

Pentru a crea o buclă „cu un parametru” în Flash, trebuie să selectați comanda Operations – For din fereastra Frame Actions. Ca rezultat, un design de buclă va apărea în partea dreaptă a ecranului (Figura 9).

Figura 10

Pentru acest design, trebuie să configurați trei câmpuri. Inițială – aici trebuie să scrieți valoarea inițială a unei variabile, se mai numește și contor. De exemplu, i=1. Condiția este cât timp voi schimba variabila. De exemplu, i<=10. Следующий – с каким шагом изменяется переменная i. Если вы хотите, чтобы переменная каждый раз увеличивалась на единицу, то можно записать i++. В результате появляется конструкция:

pentru (i=1; i<=10; i++) {

Semnificația sa este următoarea: variabila i va lua valori de la unu la zece, iar comenzile cuprinse între acolade vor fi executate de zece ori. Variabila i însăși poate fi folosită în corpul buclei, iar alte constructe algoritmice, instrucțiuni condiționale etc. pot fi, de asemenea, folosite acolo.

Să ne uităm la modul în care acest design este implementat în următoarea problemă. „Creează un program care calculează a la puterea lui n (n este o valoare întreagă). Valorile lui a și n sunt introduse în câmpurile corespunzătoare. Aspectul programului este prezentat în Figura 10.

Creați un câmp dinamic și numiți-l un.

dacă (n<>0) {

‘ Problema are sens doar dacă n > 0, acest lucru este verificat de declarația condiționată

pentru (i=2; i<=n; i++) {

„Deoarece în prima linie variabila an a luat deja valoarea egală cu a, deci valoarea inițială a contorului este două.

Pentru butonul „șterge”, adăugați următorul cod:

Comentariile mi se par inutile.

Ciclul „while” este utilizat atunci când numărul de repetări nu este cunoscut în prealabil. Să continuăm analogia - atunci când oamenii sapa cartofi, ei efectuează și acțiuni repetate: „sapă un tufiș”, „strânge cartofi”, „pune-i într-o pungă”. Chestia este că nimeni nu știe de câte ori trebuie efectuate aceste acțiuni. Prin urmare, acest ciclu poate fi scris după cum urmează:

În timp ce (există cartofi?)

De fiecare dată când executați setul specificat de comenzi, trebuie să verificați dacă condiția este îndeplinită, atunci corpul buclei este executat din nou;

Figura 11

Pentru a crea o buclă „while” în Flash, trebuie să selectați comanda Operations – While din fereastra de acțiuni cadru. Ca rezultat, un design de buclă va apărea în partea dreaptă a ecranului (Figura 11).

Pentru acest design, trebuie configurat un singur câmp. Condiție – în ce condiție este executată bucla. De exemplu, y<10.

Vă rugăm să rețineți că dacă condiția nu este îndeplinită la prima apelare a buclei, atunci bucla nu este executată niciodată. De asemenea, este foarte important ca variabila y să se modifice în timpul execuției buclei, în caz contrar programul se va bucla și va bloca. De asemenea, aș dori să vă atrag atenția asupra particularității executării codului programului în Flash. Dacă parcurgeți o proprietate a unui obiect sau o valoare a câmpului dinamic, nu veți vedea că proprietatea sau valoarea respectivă se schimbă rapid atunci când o rulați. Flash va executa mai întâi complet întregul script și numai după sfârșitul ciclului va redesena ecranul și va schimba această proprietate sau valoare. Înțelegerea acestei caracteristici va fi deosebit de importantă pentru noi în a noua lecție atunci când studiem animația software.

Figura 12

Orice algoritm care poate fi scris folosind o buclă „cu un parametru” poate fi scris și folosind o buclă „while”. Dar contrariul nu este adevărat. Există probleme care nu pot fi rezolvate prin alte metode folosind construcția „În timp ce”. Să luăm în considerare această problemă. „Se știe că seria numerelor 1, 1/2, 1/3 ... 1/n este divergentă, ceea ce înseamnă că suma acestor numere poate depăși orice număr predeterminat A. Găsiți un n astfel încât suma numerelor seria este 1 + 1/2 + 1 /3 + … + 1/n va deveni mai mare decât numărul dat A. Aspectul programului este prezentat în Figura 12.”

Creați un câmp de introducere a datelor și denumiți-l a.

Creați două câmpuri dinamice și denumiți-le n și respectiv s.

Creați numărul necesar de semnături statice „a=”, „n=”, etc.

Creați două butoane „calculați” și „ștergeți”.

Pentru butonul „calculați”, adăugați următorul cod:

‘ Deoarece în buclă este necesar să se verifice condiția s

în timp ce(s

Pentru butonul „Șterge”, codul este similar cu codul de la sarcina anterioară.

În ciuda faptului că teoretic pentru orice A există o valoare n, dar în realitate chiar și pentru A=10, n=12367. Pentru valori mari ale lui A, calculul acestei probleme poate dura minute sau ore...

Întrebări de revizuire:

Care este diferența dintre o buclă „cu parametru” și „while”?

Care ciclu este mai universal?

Ce este un „contor” într-o buclă „cu parametru” și ce înseamnă comanda i++?

Cum se scrie un program care efectuează exponențierea folosind o buclă while?

De ce se blochează programul când se execută o buclă „while”? Cum să evitați acest lucru?

6. Proiectul „Calculator flash”

Pentru a vedea Action Script în acțiune, să facem ceva cu adevărat util. Să facem un calculator, aspectul este prezentat în Figura 13.

Figura 13

Scopul proiectului: Crearea unui calculator standard pentru Internet cu capacitatea de a efectua operații aritmetice standard. Pentru a introduce valori, utilizați atât mouse-ul, cât și tastele standard de la tastatură.

Mai întâi, creați un câmp de ieșire dinamic și dați-i un nume ca text. În al doilea rând, creați numărul necesar de butoane pentru calculatorul nostru. În al treilea rând, să începem să ne gândim.

Ne așteaptă trei probleme:

Prima problemă este că atunci când tastați primul număr, fiecare cifră se adaugă la sfârșitul numărului deja tastat, iar după apăsarea butonului cu imaginea unei operații aritmetice, următoarea cifră este plasată la începutul liniei.

Când introducem primul număr, de exemplu 245, apăsăm secvențial butoanele 2, 4 și 5 Dar de unde știe calculatorul că atunci când apăsăm butonul 2 este două sute și nu douăzeci sau două mii? Cu alte cuvinte, de unde știi ce număr să-ți amintești în prima variabilă?

A treia problemă este că trebuie să utilizați cel puțin trei variabile pentru primul, al doilea număr și, de asemenea, pentru rezultat, dar există un singur câmp dinamic și numele variabilei sale!

220" height="52" bgcolor="white" style="vertical-align:top;background: white"> https://pandia.ru/text/78/159/images/image013_35.gif" width="12 " înălțime="36">

Pentru a rezolva prima problemă, avem nevoie de o variabilă suplimentară, să o numim stek. Scopul său este de a urmări acțiunea curentă. Când este introdus primul număr, valoarea acestuia ar trebui să fie, să zicem, unu. În momentul în care începe să fie introdusă a doua cifră a primului număr, valoarea variabilei ar trebui să fie deja, să zicem, două. În momentul în care începe să fie introdus al doilea număr, valoarea variabilei ar trebui să fie deja egală cu trei. În momentul calculării rezultatului, variabila stek trebuie să ia din nou o valoare egală cu unu, astfel încât rezultatul rezultat să devină primul număr pentru acțiunile ulterioare.

Toate acestea înseamnă că nu ne putem descurca cu un singur cadru cheie. Este recomandabil să creați un cadru cheie pe un nou strat și să setați valoarea variabilei stek din acesta la unu. În al doilea cadru cheie, adăugați o singură comandă Acțiuni de bază – Stop. Mutați conținutul stratului calculatorului, care conține toate butoanele, în al doilea cadru (Figura 14). Acum, când pornește programul, variabila stek ia valoarea dorită, videoclipul merge la al doilea cadru și se oprește. Toate acțiunile ulterioare vor avea loc acolo.

Figura 14

Pentru a rezolva a doua problemă, valoarea de intrare trebuie să fie text! Când faceți clic pe un număr, de exemplu 1, un alt caracter va fi adăugat la șirul de text format din numere

Ei bine, operatorul condiționat și variabila stek vor ajuta la sfârșitul problemei. De mai jos

codul atribuit tastei 1 este prezentat pentru toate celelalte butoane codul este similar.

activat (eliberare, tasta Apăsați „1”) (

Pe lângă versiunea obișnuită (lansare), a fost adăugată și capacitatea de a utiliza tastatura. KeyPress „1” înseamnă că următorul cod va fi executat nu numai atunci când apăsați un buton de pe ecran, ci și atunci când apăsați o tastă de pe tastatură. Consultați Figura 15 pentru cum să realizați acest lucru.

Dacă variabila stek este egală cu unu, atunci variabila text asociată câmpului dinamic de ieșire va lua o valoare egală cu unu, iar variabila stek va deveni egală cu două.

) else if (stek==2) (

Dacă variabila stek este două, atunci una nu este prima cifră din număr, deci este atașată variabilei text din dreapta

) else if (stek==3) (

Dacă variabila stek este egală cu trei, atunci una este prima cifră din al doilea număr

Figura 15

A treia problemă poate fi rezolvată destul de ușor. Trebuie să stocăm numerele introduse în variabile intermediare. Să analizăm codul programului corespunzător tastelor de operare aritmetică, acestea implementează o soluție la această problemă:

activat (eliberare, apăsați tasta „+”) (

și codul programului corespunzător tastei egale.

activat (eliberare, apăsați tasta „=") (

text = parseFloat(a)+parseFloat(text);

) altfel dacă (o=="m") (

text = parseFloat(a)-parseFloat(text);

) else if (o=="u") (

text = parseFloat(a)*parseFloat(text);

) else if (o=="d") (

text = parseFloat(a)/parseFloat(text);

Totul ar trebui să fie clar în primul fragment. Dacă se apasă tasta plus, o altă variabilă o ia valoarea p (plus), iar valoarea textului variabilei este stocată într-o variabilă temporară a. Și când tasta egală este apăsată în cele din urmă, computerul trebuie să adauge valoarea stocată în textul variabilei și variabila a. Deoarece valorile textului sunt stocate în variabile, este necesar să folosiți funcția parseFloat(), care convertește o expresie text într-un număr. Pentru a-l apela, utilizați comanda Functions – parseFloat.

Lansați proiectul, testați-l. Acest lucru nu înseamnă că calculatorul rezultat este perfect. Nu are funcții matematice standard pentru a efectua mai multe acțiuni la rând, trebuie întotdeauna să apăsați egal. Dar toate îmbunătățirile le poți face singur. Am învățat principalul lucru. Creați produse software simple folosind Macromedia Flash.

Întrebări de revizuire:

Ce probleme am întâmpinat la crearea calculatorului? Care este scopul variabilei stek? De ce ar trebui să fie stocată o expresie text într-o variabilă atunci când apăsați o tastă numerică? Care este scopul funcției parseFloat()? Sugerați o idee despre cum să efectuați mai multe operații aritmetice „la rând” fără a apăsa tasta „egal” între ele?

7. Programare orientată pe obiecte.

Dacă sunteți familiarizat cu programarea în limbaje precum Pascal sau Basic, atunci probabil ați observat că programarea în Flash este foarte diferită. Chestia este că Action Script este mai aproape nu de limbajele de programare procedurală, ci de cele orientate pe obiecte, precum Visual Basic sau Delphi.

Nu mă voi opri în detaliu asupra comparației acestor limbaje, mai ales că Action Script nu este un limbaj independent, trebuie să cunoaștem conceptele de bază. Vă rog să mă iertați imediat pentru o prezentare oarecum vagă a unui concept atât de fundamental precum programarea orientată pe obiecte (OOP), care se bazează pe concepte atât de dificile precum încapsularea și polimorfismul.

OOP se bazează pe modelul obiect al aplicației, în care toate obiectele sunt elemente ale unei anumite clase (Figura 16). Deci, aplicația Flash se bazează pe un film, constă din una sau mai multe scene. Scena conține obiecte grafice și de bibliotecă. Scena are și o linie temporală în care sunt situate cadrele. Cadrele cheie, simbolurile de clip și simbolurile butoanelor pot avea propriul cod Action Script.

În adevăratele limbaje orientate pe obiecte, fiecare element al modelului obiect poate fi accesat programatic. În Macromedia Flash, puteți accesa doar unele dintre aceste elemente în mod programatic, utilizând Action Script.

În general, Flash are capacitatea de a crea variabile obiect, dar acest lucru depășește domeniul de aplicare al cursului nostru opțional.

https://pandia.ru/text/78/159/images/image020_25.gif" width="612" height="420 src=">

Figura 16

Puteți vizualiza oricând modelul obiect al videoclipului dvs. specific folosind panoul plutitor „Explorator video”.

Figura 17 (arată un fragment al modelului obiect pentru proiectul anterior
calculator flash)

Obiectele mutabile au proprietăți, adică lucruri care pot fi modificate. De exemplu, un clip video are o proprietate de coordonate X Scriptul de acțiune are metode cu care putem schimba această proprietate. (și prin urmare creați animație software). Mai multe despre asta în capitolul următor.

Fiecare apel la codul de program este însoțit de un anumit eveniment, un astfel de eveniment ar putea fi apăsarea unui buton de pe ecran sau apăsarea unei taste de la tastatură.

Întrebări de revizuire:

Numiți limbaje de programare orientate pe obiecte. Ce elemente alcătuiesc modelul obiect Flash? Ce elemente puteți schimba programatic? Explicați semnificația termenilor obiect, proprietate, metodă, eveniment. La ce evenimente reacționează filmul Flash?

8. Schimbarea programatică a proprietăților.

Simbolurile bibliotecii de tip clip video pot avea proprietăți editabile. Aceasta înseamnă că puteți modifica în mod programatic dimensiunea, poziția sau vizibilitatea unui anumit obiect. Cum este implementat acest lucru?

Figura 17

Desenați un obiect, cum ar fi un dreptunghi.

Puneți-l în bibliotecă și trebuie să fie un videoclip;

În panoul plutitor „Copiere”, trebuie să specificați numele acestui obiect, de exemplu, zzz (Figura 17).

În panoul „Frame Actions”, selectați comanda Operations – Set Property. Această comandă are trei câmpuri personalizate. Proprietatea este proprietatea obiectului pe care dorim să o modificăm, de exemplu, _x (x Position), poziția obiectului de-a lungul axei X Target este numele copiei obiectului, în acest caz zzz. Valoare – cu ce este egală proprietatea selectată, acest câmp poate conține un anumit număr sau o expresie, dar în orice caz, nu uitați să verificați comutatorul „Expresie” (Figura 18).

Asta e tot, dacă rulezi proiectul, vei vedea că dreptunghiul tău s-a mutat și acum coordonatele centrului său va fi egală cu o sută.

Figura 18

Setul complet de proprietăți modificabile se află în fereastra „Proprietăți cadrului”, secțiunea Proprietăți, iar semnificația acestora poate fi găsită în literatură. Să ne uităm la principalele proprietăți, dintre care multe vom avea nevoie mai târziu în proiect:

Alpha – transparența obiectului, variază de la zero – transparență totală, până la 100 vizibilitate totală;

Vizibil este o proprietate foarte asemănătoare care înseamnă vizibilitate. Proprietatea are doar două valori – zero (obiectul este invizibil) și una (obiectul este complet vizibil);

Figura 19

Înălțime – înălțimea obiectului, măsurată în pixeli;

Lățimea – lățimea obiectului, măsurată în pixeli;

Rotație – rotația unui obiect față de centrul său, măsurată în grade;

coordonata X – x;

Figura 20

Coordonata Y – y, coordonata colțului din stânga sus ia valoarea egală cu (0,0);

Xscale – schimbați scara de-a lungul axei x;

Yscale – schimbați scara de-a lungul axei y;.

După cum ați observat, toate proprietățile încep cu un caracter de subliniere.

Deoarece nu trebuie doar să schimbăm în mod programatic proprietățile unui obiect, ci și să urmărim valoarea lor curentă, avem nevoie de funcția GetProperty. Comanda este apelată în fereastra „Frame Actions” Functions – GetProperty() (Figura 19). Funcția are doi parametri. Țintă – țintă, în locul cuvântului țintă este scris numele unei copii a simbolului obiectului. Proprietate – o proprietate modificabilă în loc de proprietatea cuvântului, de exemplu, puteți scrie _x, obținând coordonata x curentă; Această funcție este utilizată, de regulă, împreună cu comanda pentru a seta o variabilă sau în interiorul unei alte comenzi (Figura 20).

x = getProperty(zzz, _x);

Această comandă înseamnă că coordonata curentă a obiectului, numită zzz, va fi stocată în variabila x.

Să vedem cum puteți utiliza modificarea proprietăților într-un proiect. Creați un obiect ale cărui proprietăți pot fi modificate. Un exemplu de ecran este prezentat în Figura 21.

Figura 21

Creați un obiect și transformați-l într-un simbol video.

Dați copiei acestui simbol un nume în panoul de copiere plutitor, cum ar fi „Ob”.

Creați un set de butoane. În principiu, setul de butoane poate fi arbitrar, proiectul folosește butoane care modifică coordonatele obiectului, precum și scara și transparența obiectului.

Adăugați următorul cod la butonul care mută obiectul în sus:

activat (eliberare, apăsați tasta " ") {

setProperty("Ob", _y,

getProperty(Ob, _y) - 5);

Această comandă schimbă proprietatea obiectului „Ob”, coordonata y. Pentru ca un obiect să se miște în sus, se calculează coordonatele curente și se scade 5 din el.

Alte butoane au cod similar, diferă doar în proprietatea pe care urmează să o modificați. Să luăm un alt exemplu:

setProperty("Ob", _xscale, getProperty(Ob, _xscale) + 5);

setProperty("Ob", _yscale, getProperty(Ob, _yscale) + 5);

Acest cod mărește scara obiectului. Pentru a crește proporțional, trebuie să măriți dimensiunea atât pe axa x, cât și pe axa y. Prin urmare, există două comenzi în acest script.

Întrebări de revizuire:

Ce simboluri de bibliotecă pot fi accesate programatic? Cum să organizezi asta? Ce proprietăți ale obiectelor ați studiat? Care este sensul lor? Care este diferența dintre comenzile setProperty și getProperty? Explicați semnificația liniei: setProperty("Ob", _xscale, getProperty(Ob, _xscale) + 5); Vă puteți imagina cum puteți schimba proprietățile altor obiecte, cum ar fi butoanele?

9. Cicluri cu trei cadre. Animație software.

Schimbarea programatică a proprietăților obiectului vă permite să creați animație programatică. Spre deosebire de animația standard, care poate fi creată în Macromedia Flash, animația software poate fi controlată pe măsură ce videoclipul progresează.

S-ar părea că este suficient să schimbați ciclic proprietățile unui obiect, de exemplu coordonata x, iar obiectul va începe să se miște, dar nu este așa. Faptul este că în Flash, codul programului este executat mai întâi și abia apoi are loc o schimbare, ecranul este redesenat. Prin urmare, obiectul va fi transferat imediat de la punctul de pornire la punctul final, iar mișcarea lină nu va funcționa. Depășirea acestei contradicții constă în utilizarea ciclurilor cu trei cadre.

Ideea lor este aceasta:

În primul cadru cheie sunt setate constantele inițiale și poziția inițială a obiectului.

În al doilea cadru cheie, proprietatea obiectului se modifică cu o anumită cantitate specificată.

Al treilea cadru cheie conține o singură comandă pentru a trece la al doilea cadru.

În ciuda faptului că ciclul nu este specificat în mod explicit, proprietățile se vor schimba ciclic. Efectuând o modificare a proprietății programatice în al doilea cadru, computerul va schimba poziția obiectului, iar al treilea cadru va bucla acest proces.

Să vedem cum este implementat în practică un ciclu cu trei cadre. Să creăm un videoclip în care mașina se mișcă de la o margine la alta a foii, întorcându-se în direcția opusă și continuând să se miște la nesfârșit. Utilizatorul are capacitatea de a-și schimba viteza de mișcare, încetinind-o sau mărind-o. Aspectul videoclipului, desigur fără mișcare, este prezentat în Figura 22. Mai jos va fi o analiză a codului programului pentru implementarea acestui proiect.

Figura 22

Creați un desen de mașină pe primul strat sau importați un desen gata făcut. Redenumiți stratul „mașină” și extindeți cadrul cheie la al treilea cadru apăsând tasta F5 în al treilea cadru.

Convertiți un desen într-un simbol, cum ar fi un clip video. Dați copiei acestui simbol un nume în panoul de copiere plutitor, cum ar fi „mașină”.

Creați un nou strat, redenumiți-l „butoane” și creați două butoane pe el „mai rapid” și „mai lent”.

Pe un nou strat Acțiuni, creați trei cadre cheie goale și apăsați F7 de trei ori.

În primul cadru cheie, adăugați următorul cod:

setProperty("mașină", ​​_x, 50);

Vă rugăm să rețineți că acest cod nu este cuprins între acolade și nu există nicio pornire (eliberare) la început, adică acest cod se referă în mod specific la cadru, nu la buton. În acest fragment, în prima linie a obiectului numit mașină, proprietatea _x (coordonată de-a lungul axei x) este setată la 50. În continuare, sunt introduse trei variabile, iată sensul lor: dx - valoarea unei singure mișcări a obiectul, precum și direcția de mișcare (vezi mai jos), MinX și MaxX sunt coordonatele minime și, respectiv, maxime posibile ale obiectului. În general, vă puteți descurca fără aceste variabile, dar utilizarea lor face mult mai ușor să vă depanați proiectul. Cred că o înțelegere mai profundă va apărea atunci când analizați codul suplimentar.

În al doilea cadru cheie, adăugați următorul cod:

x = getProperty(masina, _x);

' Variabila x stochează poziția curentă a obiectului.

dacă (x<=MaxX) {

setProperty("mașină", ​​_xscale, -100);

O construcție a două instrucțiuni condiționale imbricate. Primul verifică dx>0. Dacă da, atunci mașina se mișcă spre dreapta. A doua condiție x<=MaxX проверяет не достиг ли автомобиль максимально возможной координаты. Если это так то изменяется координата x объекта «car». Если второе условие не выполняется, то максимальная координата достигнута, как результат масштаб по координате х изменяется на -100% (автомобиль переворачивается) и единичного перемещение объект изменяется на противоположное.

dacă (x>=MinX) (

setProperty("masina", _x, x+dx);

setProperty("mașină", ​​_xscale, 100);

Din nou o construcție a două declarații condiționale imbricate. scopul lor este similar cu cele precedente.

În al treilea cadru cheie, adăugați următorul cod:

gotoAndPlay(2);

Dacă rulați proiectul acum, veți vedea că obiectul se mișcă la stânga și la dreapta. Să adăugăm un cod simplu care crește și scade viteza.

Pentru a schimba viteza, trebuie să creșteți cantitatea de mișcare unitară a obiectului. Codul corespunzător butonului „mai rapid” este prezentat mai jos:

activat (eliberare, apăsați tasta " ") {

Dacă o mișcare a unității este pozitivă, atunci apăsarea butonului crește această mișcare cu unu. Vă rugăm să rețineți că aceeași acțiune va avea loc dacă apăsați butonul „dreapta” de pe tastatură.

Codul corespunzător butonului „mai lent” este prezentat mai jos:

activat (eliberare, apăsați tasta " ") {

Scopul este similar cu fragmentul anterior. Asta e tot. Lansați proiectul, testați-l. Vom aplica cunoștințele acumulate în ultimul proiect, care le va combina pe cele două precedente și va crea un joc.

Întrebări de revizuire:

De ce nu poate fi implementată animația software folosind o buclă obișnuită „while”? Explicați scopul fiecărui cadru într-un ciclu de trei cadre. Explicați semnificația variabilei dx în proiectul descris. De ce se află linia setProperty ("mașină", ​​_xscale, 100) în codul programului? Adăugați un buton „stop” la proiectul creat.

10. Proiect „Joc interactiv – Poligon de tragere”.

Scopul proiectului: creați un joc interactiv cu galerie de împușcături. Un iepure (țintă) va fi amestecat pe terenul de joc, care trebuie lovit folosind o țintă în mișcare. Lovirea trebuie făcută într-un număr minim de pași (calculat). O vedere aproximativă a ecranului este prezentată în Figura 23.

Pentru a implementa acest proiect, trebuie să creați un obiect țintă (în acest caz, un desen importat al unui iepure). Ar trebui să se miște în același mod ca mașina din proiectul anterior. De asemenea, trebuie să creați un obiect țintă și un set de butoane care mișcă acest obiect stânga-dreapta și sus-jos. De asemenea, trebuie să creați șase câmpuri dinamice de ieșire. Două pentru afișarea coordonatelor țintei, două pentru afișarea coordonatelor țintei, unul pentru afișarea rezultatului și unul pentru numărarea numărului de încercări.

În principiu, acesta este același ciclu cu trei cadre. În primul cadru setăm parametrii inițiali:

z_x = aleatoriu(450)+50;

z_y = aleatoriu(230) + 50;

pr_x = getProperty(pr, _x);

pr_y = getProperty(pr, _y);

setProperty("z", _x, z_x);

setProperty("z", _y, z_y);

setProperty("buh", _vizibil, 0);

d – precizia loviturilor (mai multe despre această variabilă mai târziu); h este o singură treaptă de mișcare a „iepurilor”; rez – numărul de repetări, inițial această variabilă este egală cu zero; z-x și z-y sunt coordonatele inițiale ale „iepurii”, acestea sunt setate folosind funcția standard Random, este numită folosind comanda Objects – Mathematics – Random din fereastra Frame Actions; apoi proprietățile țintei (obiectul „z”) sunt setate la coordonatele aleatoare obținute; iar în final, în ultima linie, vizibilitatea „împuşcăturii” este setată la zero, adică, deocamdată, obiectul „buh” este invizibil.

Figura 23

Și mai jos este codul corespunzător celui de-al doilea cadru cheie:

z_x = getProperty(z, _x);

dacă (z_x>=max_x) (

setProperty("z", _xscale, -50);

dacă (z_x<=min_x) {

setProperty("z", _xscale, 50);

setProperty("z", _x, z_x+h);

totul repetă exact codul similar al celui de-al doilea cadru din sarcina anterioară.

Al treilea cadru conține o singură comandă:

gotoAndPlay(2);

vă permite să „încercați” mișcarea țintei.

Adăugați cod pentru butoanele care mută ținta la stânga și la dreapta, în sus și în jos. De exemplu, iată codul pentru a muta ținta la dreapta:

activat (eliberare, apăsați tasta " ") {

pr_x = getProperty(pr, _x);

setProperty("pr", _x, pr_x + 10);

pr_x = getProperty(pr, _x);

în acest fragment comanda pr_x = getProperty (pr, _x) se repetă de două ori, aceasta nu este o eroare. Doar că prima dată este nevoie de această comandă pentru a determina poziția țintei înainte de deplasare, iar a doua oară avem nevoie de o nouă coordonată a țintei pentru a o compara cu coordonata țintei la tragere.

Tot ce rămâne este să adăugați codul pentru butonul de foc. Este prezentat mai jos:

activat (eliberare, apăsați tasta " ") {

‘ Indiferent de eficacitatea loviturii, variabila rez crește cu unu.

setProperty("buh", _x, pr_x);

setProperty("buh", _y, pr_y);

setProperty("buh", _vizibil, 1);

' Simbolul care simulează o „împușcătură” se deplasează la coordonatele unde se află în prezent ținta și vizibilitatea acesteia devine egală cu unu.

tellTarget("buh") (

gotoAndPlay(2);

În proiect, o „împușcătură” este un clip în care apare un cerc roșu. Pentru a preveni ca acest lucru să se întâmple tot timpul, comanda stop() este utilizată în primul și ultimul cadru al clipului. Comanda TellTarget spune computerului că următoarele comenzi din săgețile ondulate se aplică numai obiectului „buh” și sunt executate în acesta. Prin trecerea la al doilea cadru, începe animația din interiorul clipului „buh”.

dacă (abs matematică (pr_x - z_x)

text = „Exact la țintă!”;

„ În ce caz ar trebui să presupunem că am lovit ținta - dacă diferența dintre coordonatele țintei și țintei este mai mică decât precizia lovirii (variabila d în primul cadru). Ideea este că ambele condiții sunt îndeplinite simultan pentru coordonatele x și y, deci se folosește conjunctivul logic AND (vezi lecția 4). Și în sfârșit, trebuie să comparăm modulul diferenței de coordonate în acest scop se folosește funcția matematică standard; abs(). Dacă toate condițiile sunt îndeplinite, câmpul dinamic „text” capătă valoarea „Exact la țintă!” iar videoclipul se oprește.

text = „trecut!”;

Asta e tot. Proiectul rulează, ținta fuge de noi, iar câmpurile de text urmăresc poziția sa. Ținta se deplasează pe câmp și rezultatele sunt afișate pe ecran. Vă puteți felicita, am ajuns până la capăt.

Întrebări de revizuire:

Ce tehnologii au fost folosite în acest proiect? Care este scopul comenzii tellTarget("buh")? Ce trebuie schimbat în program pentru a reduce câmpul de mișcare al iepurelui cu 100 de pixeli? De ce, atunci când comparăm coordonatele țintă și coordonatele țintă, ar trebui să calculăm modulul datelor de coordonate? Cum este implementat acest lucru în Flash? Oferă opțiuni care complică jocul, sugerează modalități de implementare a acestora.

Tocmai am atins despre programarea în Flash. Probleme cum ar fi lucrul cu matrice au rămas neatinse; Există încă multe secrete și surprize în Flash explorarea lor este o chestiune separată. Poate că autorul va găsi timp să descrie aceste aspecte interesante.

Dacă v-au interesat aceste prime lecții, dacă v-ați interesat programarea în Flash, atunci aceste câteva nopți pe care le-am descris primii pași în minunatul program Macromedia Flash nu au fost în zadar. Ma puteti contacta prin E-mail, sa va exprimati dorintele si comentariile, sa puneti intrebari, dar in orice caz, va multumesc ca ati citit acest text.

Pentru obtinerea. exe, trebuie să creați un film Flash în programul Macromedia Flash, să îl publicați (meniu dosar – publicare). Drept urmare, aveți un fișier cu extensia . swf, îl puteți vizualiza fie folosind programul Flash Player (instalat automat la instalarea Macromedia Flash. Deschideți fișierul care apare, selectați meniul fișier – crearea unui proiector, setează-ți numele. fișier exe.

În ciuda faptului că vedeți un dreptunghi, ca în imagine, acesta este un chenar atunci când introduceți text, acesta va rămâne, dar în videoclip în sine nu va fi vizibil.

Cel mai probabil, atunci când încercați să introduceți text cu litere rusești, „abracadabra” va apărea pe ecran. Acest lucru se datorează faptului că fontul implicit din programul Flash este Times New Roman, care nu conține o descriere a caracterelor chirilice. Prin urmare, înainte de a tasta, instalați un font care acceptă chirilic, de exemplu, Times New Roman Cyr sau Arial Cyr.

Dacă citiți versiunea electronică a acestui manual, atunci puteți copia acest fragment și apoi îl puteți lipi prin clipboard în fereastra de acțiune a cadrului.

În cea de-a patra versiune de Macromedia Flash, s-a impus o limită de 20.000 de repetări dacă ai încercat să efectuezi un număr mai mare de cicluri, computerul a oprit executarea codului pentru a evita înghețarea. Începând cu cea de-a cincea versiune, restricția a fost eliminată, computerul afișează doar un mesaj că programul încetinește și vă oferă posibilitatea de a închide singur programul.

Pentru a adăuga un nou cadru cheie, faceți clic pe cadrul #2 din stratul de acțiune și apăsați F7. Flash va crea un nou cadru cheie gol.

Pentru a importa o imagine, selectați comanda Fișier – Import din alte formate. Aveți grijă dacă folderul specificat conține fișiere cu același nume, de exemplu. masina1? car2 etc., atunci computerul va oferi să le importe pe toate deodată. Dacă importați un desen vectorial, acesta va ajunge pe pânză ca o colecție de obiecte grupate. Nu uitați să-l grupați într-un singur întreg. Dacă importați un bitmap, acesta este plasat automat în bibliotecă și vedem o copie a acestuia pe scenă.

Fiecare dezvoltator independent debutant se confruntă cu întrebări logice: „pe ce să scrieți?”, „De ce să scrieți?” și „ce instrumente să folosești?”. În continuare, voi încerca să evidențiez toate aceste probleme în lumina platformei Adobe Flash.

Să ne uităm la numărul de postări și subiecte create de el și de mine. De exemplu, iată primele două postări din subiectul HTTP://FORUM.ALTERNATIVAPLATFORM.COM/POSTS/LIST/8657.PAGE

Daca vrei neaparat, poti sa scrii un mesaj personal mie si lui pe acelasi forum.

Platforma Adobe® Flash® este un set integrat de tehnologii pentru programarea aplicațiilor, susținut de un ecosistem stabil de programe de asistență, parteneri de afaceri și comunități de utilizatori. Împreună, vă pot oferi tot ce aveți nevoie pentru a crea și a distribui aplicații dinamice, conținut și videoclipuri către cel mai larg public posibil.

Avantajele flash-ului includ:

  • Multiplatformă - Aplicațiile flash rulează în trei medii principale: flash player, AIR și shockwave player (încorporat și actualizat automat în browserul Google Chrome). Toate cele trei medii sunt acceptate pe Windows, Mac OS și Linux, precum și pe multe dispozitive portabile, oferind cea mai mare versatilitate multi-platformă a oricărui timp de rulare multimedia;
  • Reziliență și sprijin - spre deosebire de multe sursa deschisa motoarele și mediile de joc, flash-ul în sine este un proiect comercial uriaș și sute și mii de dezvoltatori lucrează la platformă. Actualizări regulate ale componentelor, capabilități extinse, un număr extrem de mic de erori în platformă în sine (de fapt, aproape că nu există) și suportul pentru dezvoltatori de la Adobe Corporation merită respect;
  • Script de acțiune 3 - un limbaj de programare la nivel înalt, orientat pe obiecte, care are un număr mare de capabilități, de la lucrul cu text și grafice simple, până la gestionarea conexiunilor de rețea și lucrul direct cu procesorul plăcii video folosind limbajul integrat Adobe Graphics Assembly Language;
  • Trusa de instrumente - Pentru flash, pe toată perioada existenței sale, au apărut multe IDE-uri terțe, biblioteci de funcții și motoare cu drepturi depline, despre care vom vorbi astăzi.

Selectarea unui mediu de dezvoltare (IDE)

Există trei IDE-uri principale pentru dezvoltarea aplicațiilor Flash: Adobe Flash Professional, Abode Flash Builder și mediul open source gratuit Flash Develop. Să trecem pe scurt prin listă.

Adobe Flash Professional - indiferent ce spun ei, acesta este în primul rând un instrument de dezvoltare vizuală și nu este foarte confortabil pentru un programator să lucreze în el. În acest mediu, este mult mai ușor să creezi un videoclip interactiv (nu neapărat) decât o aplicație cu drepturi depline, cu atât mai puțin un joc, motiv pentru care este mai potrivit pentru designeri decât pentru dezvoltatori.

Adobe Flash Builder - Adobe Corporation a creat acest IDE special pentru dezvoltatori, destinat în primul rând programatorilor. Convenabil, simplu, de încredere, scump. Costa ~1000$.

Dezvoltare Flash - alegerea majorității dezvoltatorilor (inclusiv a mea personală). Imaginați-vă un Flash Builder gratuit cu funcții suplimentare, acesta este Flash Develop.

Cu toate acestea, limbajul de programare și platforma pentru toate IDE-urile sunt aceleași, astfel încât proiectul poate fi întotdeauna transferat de la o platformă la alta.

TEHNOLOGII

Flash Player/Shockwave Player - Cea mai recentă versiune (11) a jucătorului a dobândit suport pentru tehnologia Molehill, de exemplu. accelerare grafică hardware. Acum dezvoltatorii pot folosi liber resursele plăcii video, eliberând CPU de această povară grea. Puteți citi mai multe despre Molehill în această traducere a cărții. Pentru dezvoltatori, există o versiune independentă a playerului din care să aleagă: Debag (cu capacități mai mari de depanare) și Release. Puteți vizualiza lista de episoade și puteți descărca playerul dorit

Adobe AIR - De obicei vedem aplicațiile Flash doar în browser. După instalarea AIR pe computer, puteți instala aplicații AIR create special, care au capabilități avansate în comparație cu flash-ul obișnuit al browserului.

Script de acțiune 3 - Personal, l-am învățat în aproximativ o lună, având în vedere că înainte lucrasem doar în Delphi 7 și PHP. Pentru aceasta vreau să îi mulțumesc în special lui Adobe, pentru că nu am mai văzut de foarte mult timp un manual atât de excelent despre un limbaj de programare. Și un director online atât de complet. Aș dori să remarc că atât manualul, cât și cartea de referință sunt în întregime în limba rusă.

MOTOARE

As vrea sa va vorbesc despre doua motoare pe care le-am folosit si pe care vi le pot recomanda. Asa de:

FlashPunk - este o bibliotecă de clasă gratuită scrisă în ActionScript 3și destinat dezvoltării 2D jocuri flash. Vă va fi mai ușor să creați prototipuri și să vă dezvoltați jocul. Aceasta înseamnă că cea mai mare parte a lucrărilor murdare (actualizări ale buclei de joc, animații, manipulare a plăcilor, calcule de coliziuni etc.) este făcută pentru tine și gata de utilizare. Acest lucru vă va economisi cea mai mare parte din timp și energie și vă va permite să vă concentrați pe proiectarea și testarea jocului. (Cu) redefidează



Space Invaders pe Flash Punk


Personal de la mine - recomand cu caldura. Motorul este destinat exclusiv dezvoltării de jocuri și cunoștințele de bază despre Action Script 3 sunt suficiente pentru a-l folosi.

Lecții despre motor pot fi găsite în această secțiune a blogului, unde sunt adunate multe lecții (elementele de bază sunt chiar în partea de jos a paginii).

Platforma Alternativa

Editor Ogmo

Ogmo Editor este un editor vizual de nivel 2D pentru dezvoltatorii de jocuri independenți. Aceasta este o aplicație Adobe® AIR™ și este multiplatformă, care rulează pe Windows, OS X și Linux.

Ogmo Editor funcționează cu XML, astfel încât fișierele sale de ieșire pot fi utilizate în orice motor modern. Puteți citi lecția pe OE

Partea 1

start

    Vino cu un joc (intrimul său) înainte de a începe să scrii cod. Flash creează jocuri simple, așa că alegeți un gen de joc și gândiți-vă la conceptul său. Citește articolul. Genurile principale includ:

    • Alerga fara sfarsit. În astfel de jocuri, personajul se mișcă automat, iar jucătorul doar îl ghidează și sare peste obstacole (sau interacționează altfel cu jocul).
    • Lupte. În astfel de jocuri, personajul principal trebuie să învingă inamicii în lupte/bătălii nesfârșite.
    • Puzzle-uri. Jocuri puzzle. Acestea variază de la cele mai simple puzzle-uri (care potrivesc trei bilele identice) până la puzzle-urile complexe care stau la baza jocurilor de aventură.
    • RPG. În astfel de jocuri, este necesar să se dezvolte personajul principal (abilitățile sale, aspectul, caracterul) pentru a putea lupta cu diverși adversari. Codul pentru un joc RPG este mult mai complex decât codul pentru un joc simplu.
  1. Flash este mai potrivit pentru crearea de jocuri 2D (bidimensionale). Puteți crea și jocuri 3D (tridimensionale) în el, dar pentru aceasta trebuie să aveți cunoștințe foarte bune despre limbajul de programare și alte tehnici avansate. Aproape toate jocurile Flash populare sunt jocuri bidimensionale.

    • Jocurile flash sunt cele mai potrivite pentru sesiuni scurte de joc, deoarece sunt jucate atunci când există timp liber (nu mai mult de 15 minute).
  2. Familiarizați-vă cu limbajul de programare ActionScript3 (AS3), care este folosit pentru a scrie jocuri Flash. Puteți crea un joc simplu cu cunoștințe de bază despre AS3.

    • Există mai multe cărți despre ActionScript disponibile pe Amazon și în alte magazine, împreună cu o mulțime de tutoriale și exemple online.
  3. Descărcați Flash Professional. Acesta este un program plătit, dar cel mai bun în care sunt create jocuri flash. Există și alte programe similare, inclusiv gratuite, dar de multe ori le lipsește compatibilitatea sau îți va dura mai mult pentru a atinge aceleași obiective.

    • Flash Professional este singurul program de care aveți nevoie pentru a crea un joc.

    Partea 2

    Crearea unui joc simplu
    1. Înțelegeți structurile de bază ale codului scris în AS3. Există trei părți principale ale oricărui cod AS3:

      • Variabile. Acestea stochează date (numerice, text, obiect și multe altele). Variabilele sunt definite prin cod var și un cuvânt.

        Var playerHealth:Number = 100 ; // „var” – definiți o variabilă. // „playerHealth” este numele variabilei. // „Număr” este tipul de date (numeric aici). // „100” este valoarea atribuită variabilei. // Orice linie de cod AS3 se termină cu „;”

      • Manageri de evenimente. Caută evenimente specifice care trebuie executate și le raportează altor părți ale programului. Acest lucru este necesar pentru introducerea jucătorului și repetarea codului. De obicei, handlerii de evenimente accesează funcțiile.

        AddEventListener(MouseEvent.CLICK , swingSword) ; // „addEventListener()” – definiția unui handler de evenimente. // „MouseEvent” este categoria de intrare care se așteaptă să fie executată. // „.CLICK” este un eveniment specific din categoria MouseEvent. // „swingSword” este o funcție lansată atunci când evenimentul este executat.

      • Funcții. Secțiuni ale unui program definite de un cuvânt cheie; acestea sunt accesate pe măsură ce programul se execută. Codul unui joc complex poate include sute de funcții, în timp ce un joc simplu poate conține doar câteva. Funcțiile pot fi plasate în orice ordine, deoarece sunt executate numai atunci când sunt apelate.

        Funcția swingSword (e :MouseEvent) :void ; ( //Cod ) // „funcție” este un cuvânt cheie introdus la începutul oricărei funcții. // „swingSword” este numele funcției. // „e:MouseEvent” este un parametru suplimentar care indică dacă // că funcția este accesată de handlerul de evenimente. // „:void” este valoarea returnată de funcție. // Dacă nu este returnată nicio valoare, utilizați:void.

    2. Creați obiecte cu care jucătorul va interacționa. Obiectele pot include sprite-uri, personaje sau clipuri video. În exemplul nostru simplu de joc, vei crea un dreptunghi.

      Setați proprietățile obiectului. Pentru a face acest lucru, deschideți meniul „Editare” și selectați „Convertire în simbol” (sau apăsați F8). În fereastra Convertiți în simbol, dați obiectului un nume ușor de recunoscut, cum ar fi „inamic”.

      • Găsiți fereastra Proprietăți. În partea de sus a ferestrei este un câmp de text gol etichetat „Nume eșantion” (dacă treci cu mouse-ul peste câmp). Introduceți același nume pe care l-ați introdus când ați convertit obiectul într-un simbol (în exemplul nostru, „inamic”). Aceasta va crea un nume unic care poate fi folosit în codul AS3.
      • Fiecare „probă” este un obiect separat care depinde de cod. Puteți copia „eșantioanele” deja create; Pentru a face acest lucru, faceți clic pe „Bibliotecă” de mai multe ori și trageți „mostra” pe „scenă”. De fiecare dată când se adaugă un „eșantion”, numele acestuia se va schimba („inamy”, „enemy1”, „enemy2” și așa mai departe).
      • Când vă referiți la un obiect din cod, utilizați pur și simplu numele „eșantionului” (în exemplul nostru, „inamic”).
    3. Modificarea proprietăților probei. După crearea unui eșantion, îi puteți modifica proprietățile, cum ar fi modificarea dimensiunii acestuia. Pentru a face acest lucru, introduceți numele eșantionului, apoi „.”, apoi numele proprietății și apoi valoarea:

      • inamic.x = 150; Setează poziția obiectului „inamic” de-a lungul axei X.
      • inamic.y = 150; Setează poziția obiectului „inamic” de-a lungul axei Y (începutul axei Y se află în punctul de sus al „scenei”).
      • inamic.rotatie = 45; Rotiți obiectul „inamic” cu 45° în sensul acelor de ceasornic.
      • inamic.scaleX = 3; Întinde lățimea obiectului „inamic” cu un factor de 3. O valoare negativă va răsturna obiectul.
      • inamic.scaleY = 0,5; Reduce înălțimea obiectului la jumătate.
    4. Învață comanda trace(). Returnează valorile curente pentru anumite obiecte și este necesar pentru a determina dacă totul funcționează corect. Nu ar trebui să includeți această comandă în codul sursă al jocului, dar veți avea nevoie de ea pentru a depana programul.

      Creați un joc simplu folosind informațiile de mai sus.În exemplul nostru, vei crea un joc în care inamicul își schimbă dimensiunea de fiecare dată când dai clic pe el, până când rămâne fără sănătate.

      Var enemyHP:Număr = 100 ; // Setează rezerva de sănătate a inamicului (100 la începutul jocului). var playerAttack:Număr = 10 ; // Setează puterea de atac a jucătorului când face clic pe un inamic. enemy.addEventListener(MouseEvent.CLICK, attackEnemy) ; // Acțiunea acestei funcții este îndreptată direct către obiectul „inamic”, // adică funcția este declanșată numai când se face clic pe obiect, // și nu în alt loc de pe ecran. setEnemyLocation() ; // Plasează un inamic pe ecran. // Se rulează chiar la începutul jocului. function setEnemyLocation () :void ( enemy.x = 200 ; // Mută ​​inamicul la dreapta cu 200 de pixeli din partea stângă a ecranului. inamic.y = 150 ; // Mută ​​inamicul în jos cu 150 de pixeli din partea de sus a ecranului. inamic.rotatie = 45 ; // Rotește inamicul cu 45 de grade în sensul acelor de ceasornic. urmă ("valoarea x a inamicului este" , inamic.x , "și valoarea y a inamicului este" , inamic.y ); // Afișează poziția curentă a inamicului pentru depanare.) function attackEnemy (e :MouseEvent) :void // Creează o funcție pentru a descrie atacul când se face clic pe un inamic.( enemyHP = enemyHP - playerAttack; // Scade puterea de atac a jucătorului din sănătatea inamicului. // Rezultatul este o nouă valoare pentru sănătatea inamicului. enemy.scaleX = enemyHP / 100 ; // Schimbă lățimea în funcție de noua sănătate a inamicului. // Această valoare este împărțită la 100 pentru a obține o zecimală. enemy.scaleY = enemyHP / 100 ; // Schimbă altitudinea în funcție de noua sănătate a inamicului. urma ("Inamicul are", enemyHP, "HP left"); // Afișează sănătatea pierdută. }

Multora dintre noi ne place să petrecem timpul jucând jocuri flash scurte, dar puțini oameni se gândesc la modul în care sunt create aceste opere de artă virtuală. Între timp, această tehnologie există de la sfârșitul anilor 90. Creatorul acesteia este compania americană Macromedia (acum Adobe Systems). Acest sistem este utilizat în mod activ nu numai pentru dezvoltarea jocurilor, ci și în web mastering. Majoritatea site-urilor web de pe Internet rulează pe Flash (deși unele trec deja la HTML 5). De asemenea, creația Adobe Systems este un program pentru crearea de aplicații Macromedia Flash. Oricine îl poate stăpâni, chiar și cei departe de tehnologia informatică. Cu toate acestea, înainte de a începe să vorbim despre cum să facem jocuri, să ne uităm la principalele avantaje și dezavantaje ale acestei platforme.

Beneficiile Adobe Flash

    Există o serie de avantaje care diferențiază această tehnologie de alte platforme software și fac ca această tehnologie să fie excelentă pentru crearea de conținut de jocuri pentru amatori:
  • În primul rând, aceasta este viteza de dezvoltare. Spre deosebire de alte platforme, flash vă permite să creați orice joc în doar o oră. Macromedia Flash nu deranjează dezvoltatorul cu bucăți lungi de cod, oferind un instrument gata de lucru
  • În al doilea rând, această tehnologie oferă oportunități ample de lucru cu alt conținut multimedia. Nu trebuie să pierdeți timp și efort pentru a converti un fișier în altul. Tehnologia vă permite să integrați orice fișier grafic, sunet și video în joc fără bătăi de cap inutile. Astfel, puteți include artiști, compozitori, editori în lucrarea proiectului și puteți crea un produs cu adevărat unic
  • În al treilea rând, Macromedia are controale intuitive și un set de funcții care simplifică foarte mult munca în acest mediu software. Funcționalitatea de glisare și plasare, meniul de comandă Action Script, barele de instrumente ușor de utilizat și sfaturi cu instrumente fac lucrul cu Adobe extrem de plăcut
  • În al patrulea rând, funcționalitatea platformei este extrem de convenabilă în ceea ce privește trimiterea și distribuirea conținutului. Datorită extensiei web Adobe Player, aplicațiile create pe baza acestei tehnologii pot fi plasate cu ușurință pe orice site web prin introducerea unui cod simplu pe pagină. Tehnologia permite, de asemenea, crearea de aplicații de sine stătătoare în format swf, care pot fi reproduse cu ușurință pe orice sistem de operare
  • În sfârșit, în al cincilea rând. Această tehnologie vă permite să creați jocuri pline de culoare, cu animație foarte fluidă și interactivitate excelentă. În multe privințe, frumusețea unei aplicații depinde de talentul artistului, nu al programatorului. Cu această proprietate, această platformă atrage începătorii care doresc să-și încerce mâna la crearea de jocuri.

Dezavantajele Flash Player

    La fel ca orice alt program, acesta are și o serie de dezavantaje pe care oricine dorește să înceapă să lucreze cu aplicații Flash ar trebui să le cunoască:
  • Link către cronologia. În esență, crearea aplicațiilor Flash implică aranjarea de cadre secvențiale pe o linie temporală și apoi redarea lor. Astfel, acest sistem este excelent pentru crearea de animații. Cu toate acestea, neliniaritatea, care este o tendință actuală pentru majoritatea jocurilor, nu va fi atinsă.
  • Performanţă. Din păcate, nu este deosebit de rapid. Prin urmare, jocurile cooperative și arcadele cu un număr mare de obiecte similare nu sunt create pe baza acestuia.
  • Fără suport 3D. Un dezavantaj semnificativ este că tehnologia flash nu acceptă crearea și utilizarea modelelor tridimensionale și a scenelor de mediu, iar pentru majoritatea jocurilor moderne acesta este un standard de neclintit. Pe de altă parte, jocurile online prin browser utilizează în principal Flash, datorită anumitor limitări tipice pentru jocurile online.
  • Platformă închisă. Adobe Macromedia nu acceptă adăugarea de noi funcții. În alte medii software (de exemplu, Java), puteți adăuga proprietăți noi. Aici acest lucru poate fi făcut numai de dezvoltatorii înșiși. Și în ciuda faptului că actualizează în mod constant programul ținând cont de opiniile utilizatorilor, funcționalitatea acestuia continuă să fie limitată.

În ciuda acestor dezavantaje, flash-ul este indispensabil pentru crearea de mici mini-jocuri de amatori.

Cum se creează un joc Flash: aspecte de bază

Crearea de animații pe motor amintește de un hobby din copilărie, când o imagine era desenată pe colțurile paginilor cadru cu cadru și când a fost răsturnat rapid, a început să se miște. Esența animațiilor flash este aceeași - plasați obiectele grafice cadru cu cadru pe cronologia și atunci când sunt redate încep să se miște. E mai greu cu jocurile. Pentru a le crea, trebuie să stăpâniți limbajul de programare ActionScript 3.0. Îl puteți studia cu ajutorul unor cărți și manuale speciale (de exemplu, cartea lui Colin Mook „ActionScript 3.0 pentru Flash”). Există, de asemenea, destul de multe videoclipuri cu instrucțiuni pe YouTube. Este nevoie doar de puțin efort pentru a stăpâni acest program. După ce ați făcut acest lucru, este puțin probabil să aveți întrebări despre cum să scrieți un joc Flash.

    Când creați un joc flash, este important să respectați o anumită structură:
  • Fereastra de titlu (ecran de deschidere)
  • Reguli
  • Fereastra de final de joc

Mai întâi vine „Fereastra de titlu”. Acesta este un ecran de deschidere care ar trebui să facă o impresie inițială asupra jucătorului. Aici este important să-ți arăți tot talentul și imaginația artistică.

Următorul pas este crearea paginii Reguli. În ciuda faptului că unii dezvoltatori ignoră această etapă, este totuși mai bine să formulezi regulile jocului, făcându-l mai ușor de înțeles și mai prietenos. Uneori sunt scrise pe o pagină externă sau într-o fereastră separată.

„Fondul” este mediul în care vor fi amplasate obiectele grafice. În unele cazuri, obiectele ocupă întregul ecran. Fundalul jocului poate fi creat folosind instrumentele Adobe Macromedia sau poate utiliza programe terțe (de exemplu, Ogmo Editor este excelent la crearea de scene bidimensionale). Este important ca acesta să fie tematic și să completeze conceptul general al jocului.

Sfârșitul jocului marchează „game over window”. Jocul se poate termina în cazuri diferite - când jucătorul câștigă, când pierde sau pur și simplu când timpul/muniția se epuizează. Pentru fiecare caz, se creează o fereastră separată cu conținutul animat corespunzător. Uneori, în această fereastră este introdusă o listă de câștigători.

Astfel, după ce a studiat Adobe Flash, oricine va ști să creeze un joc. Este suficient să înțelegeți mecanismele de bază de funcționare și destul de curând veți putea crea jocuri simple. Ca în orice afacere, principalul lucru aici este să arăți suficientă perseverență și interes, iar rezultatul nu va întârzia să apară.

Dacă lucrezi cu Flashși în prezent îl folosiți doar pentru desen și animație simplă, crearea de videoclipuri sau bannere, dar nu ați făcut niciodată programare în el, atunci probabil că v-ați dorit foarte mult să cunoașteți această latură flash.

Ce s-a întâmplat ActionScript? Cum poți scrie cod în flash? Cum poți programa complet în flash? Care sunt cele mai bune instrumente de folosit pentru asta? Acest articol oferă răspunsuri la astfel de întrebări.

Acest articol va servi ca un ghid bun pentru un începător în programare sub flash pe ActionScript 3.0și vă va ajuta să alegeți cele mai bune instrumente pentru aceasta.

Ce este ActionScript?

Script de acțiune este un limbaj de programare orientat pe obiecte care adaugă interactivitate, procesarea datelor și multe altele la conținutul aplicațiilor Flash.

Puteți utiliza Action Script pentru a crea aplicații multimedia interactive, jocuri și site-uri web.

Dacă lucrați cu un mediu de dezvoltare grafică Flash IDE(de exemplu, Adobe Flash Professional CS5), dar nu ați fost niciodată interesați de unde puteți scrie cod de program, atunci probabil că sunteți deja îngrijorat de întrebarea „Unde se ascunde, acest AS3?”

AS3 în Flash IDE.

Să creăm un nou proiect Fișier - Nou - ActionScript 3.0 (Fig. 1).

Fig 1. Crearea unui nou proiect AS3.

Va apărea o scenă goală cu un cadru gol pe un strat. Acum puteți selecta cadrul și faceți clic F9, deschizând astfel fereastra „Acțiuni”, care conține zona pentru editarea codului de program al acestui cadru.

Să scriem următorul cod în fereastra care se deschide:

ActionScript

var s: String = "este urma mea de cod AS3!"; urmă(e);

var s : String = "este urma mea de cod AS3!" ;

urmă(e);

Orez. 2. Cod scris în editorul Flash IDE.

Acum puteți porni unitatea flash ( Ctrl+Enter). Acest cod creează o variabilă s tip Şir(șir) și îi atribuie o valoare inițială - șirul " este urma mea de cod AS3!". În continuare, funcția urmă(), al cărui argument este o variabilă nou creată, acest șir (sau mai degrabă, valoarea variabilei s) este afișat în filă ieșire, care în mod implicit în interfața IDE se află lângă filă cronologie.


În acest fel puteți deschide și închide (cu F9) editori de cod pentru orice cadru al aplicației Flash.

Se pare că imaginea nu este rea - puteți crea diferite obiecte cu animații ( MovieClip), sau imagini statice ( Sprite) și fiecare obiect va avea cadre și în fiecare cadru puteți programa orice doriți. Arată confortabil și flexibil. Dar asta este doar la prima vedere. Imaginați-vă că aveți zeci de obiecte cu zeci de cadre și toate acestea trebuie descrise în cod cu o logică de comportament diferită sau similară. În cel de-al doilea caz (logică similară), aceasta înseamnă, în general, sute de linii de cod similare care pot fi chiar plictisitoare de copiat din cadru în cadru. Imaginați-vă că în timpul procesului de dezvoltare trebuie să schimbați ceva. Nu - nu este cazul! AS3 nu a fost conceput pentru acest haos!

În plus, dacă lucrați ca editor de cod Flash IDE și, de exemplu, ați lucrat într-un alt mediu de programare (Delphi, Visual Studio), veți observa imediat că acest editor, ca să spunem ușor, este deprimant deoarece este incomod. și neterminată.

Ce să faci, întrebi? Căutați editori de cod de la terți.

Editore de cod alternative.

Cea mai bună opțiune pentru sistemul de operare Windows este FlashDevelop(FD). Puteți descărca cea mai recentă versiune de pe site.

Pentru iOS, o alternativă bună este FDT. Il gasesti la birou. site-ul web.

FlashDevelop.

Deoarece În prezent, locuiesc în principal în Windows, așa că vă voi spune despre editorul special pentru acest sistem de operare. Pe viitor, când voi câștiga experiență în FDT, voi scrie despre asta.

Nu este nimic complicat în instalare, descărcați cea mai recentă versiune de la birou. amplasați și instalați. Editorul este complet gratuit și folosește Flex SDK pentru compilare. În timpul unei instalări standard, FD se va ocupa de instalarea acesteia din urmă. Tot ce trebuie să instalați singur pentru FD este acesta Java.

FD are o mulțime de facilități și caracteristici, inclusiv: taste rapide, înlocuire automată bună, șabloane de clasă, abilitatea de a crea propriile șabloane și de a le edita pe cele existente.

După instalare, puteți crea un nou proiect (Proiect - Proiect nou...), se va deschide dialogul de creare a proiectului, așa cum se arată în Fig. 4.


După cum puteți vedea, FD vă permite să creați nu numai proiecte AS3. Dar acum ne interesează proiectul AS3, prefer să aleg un blank pentru proiectul cu Preîncărcare-ohm, pentru care a fost ales orez. 4. Apoi, introduceți numele proiectului (câmp Nume) și atribuiți directorul proiectului (câmp Locație), dacă este bifat „Creează directorul pentru proiect”, apoi va fi creat un folder cu numele proiectului (Nume) în directorul Locație și fișierele de proiect se vor încadra deja în el dacă caseta de selectare nu este bifată, atunci fișierele vor fi plasate în directorul Locație specificat;

După ce ați creat proiectul în partea dreaptă veți vedea structura fișierelor și folderelor proiectului, deschideți folderul srcși faceți dublu clic pe fișier Principal.as. După care ar trebui să vedeți codul aproximativ același ca în Fig. 5.


Să încercăm să scriem un cod, de exemplu aproximativ același cu care am încercat Flash IDE. Puteți scrie după rândul comentat "//punct de intrare" deoarece acesta este punctul în care scena a fost deja creată cu precizie. hai sa scriem o comanda urmă(), în fig. 5. Mi-am permis deja acest act:]

Acum puteți compila proiectul ( F8) sau rulați imediat pentru testare ( F5), după ce a alergat în fereastră Ieșire veți vedea rezultatul funcției urmă()— ieșire de linie.

Rezultatele echipei urmă() poate fi observată doar atunci când aplicația este lansată din IDE-ul în care este compilat și rulat codul.
Când rulați un fișier .swf într-un browser sau într-un player flash obișnuit, rezultatul (adică afișarea ferestrei de ieșire) nu va fi vizibil pentru nimeni.

Acum sunt sigur că abia așteptați să vă faceți primul proiect pe AS3! Și pentru a face acest lucru trebuie să începeți să învățați limba în sine.

Învățarea limbii AS3.

Desigur, poți scrie multe despre AS3, dar este puțin probabil să scriu mai bine decât în ​​cărți, mai ales că totul a fost deja scris, așa că treaba mea este să recomand cea mai bună literatură pe baza experienței mele.

Cea mai buna carte: Colin Mook — .

Un bun plus la cunoștințe: Joey Lott — .

Am citit și cartea asta la acea vreme: Rich Shoop— . Deși nu este scris mult și în detaliu, va fi potrivit pentru începători dacă nu aveți Muk la îndemână.

Aceste cărți sunt destul de suficiente pentru un început viguros! Citiți și exersați, exersați și citiți. Nu este nevoie să te așezi și să citești aceste cărți din scoarță în scoartă, pentru că... În procesul de citire, este important să consolidezi cunoștințele cu practică și tu însuți vei fi încântat să faci ceva cât mai curând posibil:]

Când căutați rapid documentația pe Internet, biroul este de mare ajutor. documentatie de la .

Pentru dezvoltarea ulterioară, pentru o bună înțelegere a OOP și a modelelor de design (și acest lucru este foarte important pentru o structură OOP bună), următoarea carte vă va fi indispensabilă: William Sanders, Chandima Kumaranatung — .

Pe acest site veți găsi și câteva aspecte ale programării AS3 acumulate de experiența mea.

Sau încercați să vă creați primul preîncărcare citind articolul: Preîncărcarea do-it-yourself.

Toate proiectele bune și de succes!