Flash mängude loomine. Elektroonilise kooli macromedia flash mx iii kursus: macromedia flash mx programmeerimise alused moodul i: objektorienteeritud programmeerimine actionscript language

Kuna ActionScript on programmeerimiskeel, nõuab selle õppimine mitmete arvutiprogrammide loomisel kasutatavate põhimõistete mõistmist.

Milliseid funktsioone arvutiprogrammid täidavad?

Kõigepealt peate mõistma, mis on arvutiprogrammid ja milliseid funktsioone nad täidavad. Arvutiprogrammil on kaks peamist omadust.

    Programm on juhiste või sammude jada, mida arvuti peab täitma.

    Iga samm viib lõpuks konkreetse teabe või andmete haldamiseni.

IN üldises mõttes, arvutiprogramm on samm-sammult juhised, mis antakse arvutile operaatori poolt ja mida arvuti üksteise järel täidab. Iga individuaalne juhend on nn juhiseid. ActionScriptis järgneb igale avaldusele semikoolon.

Sisuliselt taanduvad kõik üksiku programmikäsu funktsioonid mitme arvuti mällu salvestatud teabe biti juhtimisele. Lihtne näide on kahe numbri liitmine ja tulemuse salvestamine arvuti mällu. Rohkem keeruline näide on joonistada arvutiekraanile ristkülik ja luua programm selle ristküliku liigutamiseks ekraanil teise kohta. Arvuti mällu salvestatakse ristküliku kohta teatud info: ristküliku asukoha x, y koordinaadid, külgede laius ja pikkus, värvus jne. Iga osa sellest teabest salvestatakse arvuti mällu. Programmi algoritm ristküliku liigutamiseks ekraanil teise kohta hõlmab näiteks x-koordinaadi seadmist 200-le ja y-koordinaadile 150-le. Teisisõnu, peate määrama x- ja y-koordinaatidele uued väärtused. Arvuti teeb nende andmetega mõned toimingud, mis on kasutaja eest varjatud, et need numbrid tegelikult arvutiekraanil kuvatavaks pildiks teisendada. Siiski edasi algtase Piisab teadmisest, et ristküliku liigutamine ekraanil hõlmab ainult arvuti mälus olevate andmebittide muutmist.

Muutujad ja konstandid

Põhimõtteliselt hõlmab programmeerimisprotsess ainult osa arvuti mälus olevate andmete muutmist. Seetõttu on oluline, et oleks olemas viis, kuidas programmis andmeid esitada. Muutuv on nimi, mis tähistab väärtust arvuti mälus. Väärtuste manipuleerimiseks avalduste kirjutamisel kirjutatakse väärtuse asemel muutuja nimi. Kui arvuti kohtab programmis muutuja nime, pääseb see juurde selle mälule ja kasutab seal olevat väärtust. Näiteks kui teil on kaks muutujat nimega väärtus1 ja väärtus2, millest igaüks sisaldab numbrit, siis võite numbrite lisamiseks kirjutada järgmise lause:

Väärtus1 + väärtus2

Neid toiminguid praktikas sooritades leiab arvuti iga muutuja väärtused ja liidab need kokku.

ActionScript 3.0-s on muutujal tegelikult kolm erinevat osa:

    muutuja nimi

    tüüpi andmeid, mida saab muutujasse salvestada

    arvuti mällu salvestatud tegelik väärtus

Vaadeldi, kuidas arvuti kasutab nime väärtuse kohahoidjana. Andmetüüp on sama oluline. ActionScriptis muutuja loomisel määrate teatud tüüpi salvestamiseks mõeldud andmed. Edaspidi saab programmikäskude täitmisel muutujasse salvestada ainult seda andmetüübi väärtusi. Väärtusega saate manipuleerida, kasutades selle andmetüübiga seotud teatud omadusi. Muutuja loomiseks ActionScriptis (seda protsessi nimetatakse ka deklaratsiooniks või ülesanne muutuja) kasutatakse käsku var:

Muutu väärtus1:Arv;

Selles näites määratletakse käsud muutuja väärtuse1 loomiseks, mis suudab salvestada ainult Number-tüüpi väärtusi. (Arv on konkreetne andmetüüp ActionScripti keskkonnas.) Väärtuse saate salvestada ka otse muutujasse:

Muutuja väärtus2:Arv = 17;

Adobe Flash Professional

Flash Professionalil on muutuja määramiseks veel üks viis. Kui asetate filmiklipi sümboli, nupu sümboli või tekstivälja tööala saate määrata nende eksemplari nime Property Inspectoris. Peidetud režiimis loob Flash Professional muutuja, millel on eksemplari nimega sama nimi. Seda nime saab kasutada ActionScripti koodis selle elemendi esindamiseks laval. Oletame näiteks, et laval on filmiklipi sümbol ja annate sellele eksemplari nimeks rocketShip . Kui kasutate ActionScripti koodis muutujat rocketShip, juhite tegelikult filmiklippi.

Püsiv sarnane muutujale. See on nimi, mis tähistab antud andmetüübiga väärtust arvuti mälu. Erinevus seisneb selles, et konstandile omistatakse väärtus ainult üks kord ActionScripti rakenduse täitmise ajal. Kui konstandile on väärtus määratud, siis seda rakenduses enam ei muudeta. Konstandi defineerimise süntaks on peaaegu sama, mis muutuja defineerimise süntaks. Ainus erinevus on see, et selle asemel kasutatakse märksõna const märksõna var:

Const SALES_TAX_RATE:Arv = 0,07;

Konstanti kasutatakse väärtuse määratlemiseks, mis on seotud projekti paljudes etappides ja mis tavatingimustes ei muutu. Konstantide kasutamine literaalsete väärtuste asemel muudab koodi loetavamaks. Näiteks kaaluge sama koodi kahte versiooni. Ühte koodi kasutatakse hinna korrutamiseks muutuja SALES_TAX_RATE väärtusega. Teise koodi abil korrutatakse hind 0,07-ga. Versiooni, mis kasutab konstanti SALES_TAX_RATE, on lihtsam mõista. Lisaks eeldame, et konstandiga määratud väärtus muutub. Kui teie projekt kasutab väärtuse esitamiseks konstanti, saate väärtust ühes kohas muuta (konstandi deklaratsioon). Vastupidi, programmeeritud literaalväärtuste kasutamisel peate seda erinevates kohtades muutma.

Andmetüübid

ActionScriptis on palju andmetüüpe, mida saate muutujate loomisel kasutada. Mõnda neist andmetüüpidest peetakse lihtsateks või põhilisteks andmetüüpideks.

    Stringid: tekstiväärtused, näiteks raamatu peatüki nimi või tekst

    Numbriline: ActionScript 3.0 sisaldab kolme konkreetset arvandmetüüpi.

    • Arv: mis tahes täisarv või murdosa arvväärtusi

      int: täisarvud ilma murdudeta

      uint: märgita (mitte-negatiivsed) täisarvud

    Boolean: tõesed-valed väärtused, nagu lüliti olekud või kahe väärtuse võrdsus või ebavõrdsus

Lihtsad andmetüübid esindavad üksikuid teavet: näiteks üksikut numbrit või ühte teksti. Enamik ActionScripti keskkonnas määratletud andmetüüpe on aga keerulised andmetüübid. Need esindavad väärtuste kogumit ühes konteineris. Näiteks muutuja andmetüübiga Date esindab ühte väärtust (ajahetke). Kuupäeva väärtus sisaldab aga mitut väärtust: päev, kuu, aasta, tunnid, minutid, sekundid jne, mis kõik on üksikud numbrid. Tavaliselt käsitletakse kuupäeva ühe väärtusena ja seda saab käsitleda ühe väärtusena, luues kuupäevamuutuja. Kuid arvutis vaadeldakse kuupäeva mitme väärtuse rühmana, mis koos määratlevad ühe kuupäeva.

Enamik sisseehitatud andmetüüpe ja ka enamik programmeerija määratud andmetüüpe on keerulised. Mõned keerukad andmetüübid võivad teile juba tuttavad olla.

    MovieClip: filmiklipi sümbol

    Tekstiväli: dünaamiline või sisendtekstiväli

    SimpleButton: nupu sümbol

    Kuupäev: teave ühe ajahetke kohta (kuupäev ja kellaaeg)

Kaks laialdaselt kasutatavat andmetüübi sünonüümi on klass ja objekt. Klass on lihtsalt andmetüübi määratlus. See on samaväärne andmetüübi kõigi objektide malliga, nagu väljendis "kõik tüüpi muutujad Näidisandmetel on karakteristikud A, B ja C. Objekt, teisest küljest on lihtsalt klassi tegelik eksemplar. Näiteks MovieClipi andmetüübiga muutujat saab kirjeldada MovieClip objektina. Allpool väljendatakse sama mõtet erinevate sõnadega.

    MinuVariable andmetüüp on Number.

    Muutuja myVariable on Number.

    Muutuja myVariable on Number objekt.

    Muutuja myVariable on klassi Number eksemplar.

Üks Flash-tehnoloogia kasutamise võimalustest on väikeste rakenduste loomine kliendi poolel. Artiklis käsitletakse näiteks autokindlustuse arvutamiseks mõeldud kalkulaatori loomist veebisaidil.

Macromedia () saavutas oma Flashiga edukalt turu ootused ja lõi suurepärase toote. Asi pole aga ühes, isegi väga heas programmis. Tänapäeval nõuab elu sageli oma ala professionaali infotehnoloogiad vali tööriistad olenevalt käsilolevast ülesandest ja mõnikord pead mõne päevaga sõna otseses mõttes omandama uue keele või uue keele tarkvara. Allpool pakutud meetodid mõnede veebisaitide loomisega seotud probleemide lahendamiseks ei vaja palju uurimist. Kogenud programmeerija saab seda tehnikat oma arenduses kohe kasutada. Inimene, kellel on rohkem tagasihoidlik kogemus programmeerimisel kulub põhikontseptsioonide omandamiseks veidi aega, pärast mida saab ta kogemuste omandamisel järk-järgult oma disainilahendusi keerukamaks muuta.

Selles artiklis vaatleme väga huvitavat Flash-tehnoloogia kasutamise küsimust - väikeste rakenduste loomist kliendi poolel. See võib olla kasulik nii programmeerijatele kui ka disaineritele. Programmeerijad eiravad sageli põhjendamatult Flashi pakutavaid võimalusi, kuna nende käsutuses on juba piisavalt võimsad vahendid. Disainerid mõnikord lihtsalt ei mõista, et Flashi saab kasutada mitte ainult sissejuhatuste, menüüde ja kaunite veebisaidi kujunduselementide loomiseks. Seega on see artikkel neile, kes pole laisad oma arsenali uusi tööriistu lisama ega karda uute tööriistade õppimist ette võtta.

Kus Flashi kasutada

Veebisaidi loomise ajal peate pidevalt lahendama ühe või teise tehnoloogia valimise probleemi. Lõplik valik sõltub reeglina kahest tegurist: käsil olevast ülesandest ja arendajale või arendusmeeskonnale kuuluvate tööriistade arsenalist.

Võrgu programmeerimise probleemide lahendamisel on kolm lähenemist: kas rakendus töötab täielikult kliendi masinas ilma serverile ligi pääsemata või teeb selline rakendus ainult osa toimingutest, ülejäänud jäetakse serverile või jääb peaaegu kogu töö ära. mida teostavad serveriprogrammid.

Eelistatav on mõne probleemi lahendamine serveri poolel ja mõnikord pole lihtsalt alternatiivi. Kuid programmeerijad on alati püüdnud serveri koormust vähendada...

Niisiis, vaatame kliendirakenduste loomist kasutades Flashi. Arutame, millal seda tehnoloogiat kasutada ja millal on parem pöörduda traditsiooniliste JavaScripti, Java, VBScripti meetodite poole.

Esiteks peate olema selge, et Flash ei olnud mõeldud suurte rakenduste programmeerimiseks. ActionScripti versioon 4 on programmeerimisega kursis olevate inimeste jaoks üsna kohmakas. Selle põhieesmärk on juhtida filmi taasesituse järjestust, laadida serverist ressursse alla ning töödelda filmi ja kasutaja vahelist suhtlust. Selles keeles puuduvad tööriistad massiivide loomiseks ja nendega töötamiseks ning matemaatiliste funktsioonide töötlemiseks; Keeltega töötamise vahendid on väga tagasihoidlikud. Versioonis 5 on keel dramaatiliselt muutunud ja muutunud sarnaseks enamiku teiste Interneti-programmeerimiskeeltega, kuid praegu vaatame ActionScripti versioonis 4 tehtud näidet, kuna see versioon on algajatele programmeerijatele ja veebidisaineritele lihtsam. aru saama. Samas ei tekita pärast mõningase kogemuse omandamist viiendale versioonile üleminek probleeme.

Seega saab klientrakenduste programmeerimise põhinišši, milles Flash-tehnoloogial konkurente pole, defineerida kui lihtsate matemaatiliste arvutuste ja teksti sõelumisega väikerakendusi, kus on vaja ainulaadset liidest ja arendusaeg on piiratud. Need on erinevad kalkulaatorid, mis uurivad süsteeme, mänge, graafikute joonistamise tööriistu ja lihtsaid jooniseid (siinkohal ei räägi me rakendustest, mis ei saa hakkama ilma serveriga suhtlemiseta).

Flashi kasutamine selliste rakenduste jaoks avab disainerile (piiratud ainult tema kujutlusvõimega) loomisel palju võimalusi. kasutajaliides. Selle asemel, et ühe probleemi lahendamiseks kombineerida mitut tehnoloogiat, saate teha kõike ühes programmis - Flash-filmide redaktoris ja kohe tulemuse siluda. Veelgi enam, Macromedia andmetel on peaaegu 95% Interneti-kasutajatest juba installitud pleier Flash-filmide esitamiseks. Liigume nüüd edasi konkreetse näite juurde, mis võib demonstreerida Flash-tehnoloogia kasutamist konkreetse rakenduse arendamiseks.

Probleemi sõnastamine

Näitena loome kalkulaatori autokindlustuse arvutamiseks. Ühe kindlustusseltsi kodulehe väljatöötamisel avaldasid kliendid eelkõige soovi luua kalkulaator, mis võimaldab kiiresti arvutada mootorsõidukikindlustuse kindlustusmakse summa, tsiviilvastutuspoliisi maksumuse ja teatud liiki varakindlustuse. Vaatleme ainult esimest ülesannet - autokindlustuse arvutamist (teine ​​juhtum on palju lihtsam ja mitte nii huvitav).

Probleemsete tingimuste analüüs näitas, et vaatamata märkimisväärsele hulgale broneeringutele ja eranditele on liikluskindlustuse arvutamise skeem üsna selgelt kontrollitud ja kergesti algoritmiseeritav.

Rakendusvahendi valikul võeti arvesse järgmisi asjaolusid.

  • Matemaatilised arvutused olid üsna lihtsad ja taandusid tegema aritmeetilised tehted, tingimuste kontrollimine, täisarvuni ümardamine jne.
  • Sooviti eemalduda Internetis levinud traditsioonilisest ankeetvormide liidesest. Kasutajale oli vaja anda võimalus liidesega "mängida", muutudes algsed väärtused arvutab nii mitu korda kui soovib ja saab tulemuse kohe kätte. Soovitav oli kõik vead kohe töödelda.
  • Arvutuste tegemisel oli soovitatav vältida suhtlemist serveriga.
  • Oma osa mängis loomulikult ka see, et nende ridade autor oli Flash-tehnoloogiaga juba üsna tuttav ja tal oli ActionScripti programmeerimise kogemus.

Võimalus luua täiesti sõltumatu unikaalse liidesega rakendus tundus nii ahvatlev, et tööriista valikul polnud vaja kaua kõhkleda. Seega valisime Flashi.

Rakenduse loomine

Programmi struktuur ja algoritm

Kindlustuskulu määramise arvutusvormi üldvaade on näidatud joonisel fig. 1. Tariifimäärad varieeruvad olenevalt kindlustusriskide liigist, auto tinglikust grupist (omamaistel ja imporditud autodel eraldi) ja kasutuseast; Kindlustusfirmal on need tavaliselt tabelis. Need on kindlustusmakse arvutamiseks vajalikud põhiandmed.


Riis. 1. Autokindlustuse arvutamise vormi üldvaade.

Arvutamisel valib kasutaja nimekirjast oma auto margi, sisestab auto kasutusea (tootmisaasta), valib riskid mis tahes kombinatsioonis või kogu riskide paketi (kaskokindlustus).



Riis. 2. Automargi valimine.

Vastav menüü aken on näidatud joonisel fig. 2. Valiku lihtsustamiseks ja programmi sisemise loogika varjamiseks kasutame iga automargi jaoks erinevat nuppu. Kui sellel nupul klõpsate, käivitatakse järgmine kood:

Sees (vabastamine) Alusta Telli sihtmärk ("/") Määra muutuja: "AvtoTypeText" = "VAZ 2115" Määra muutuja: "CarsGroup" = 1 End Tell Target Mine ja peata (HideWin) Lõpe sees

Siin määratakse kohe muutuja AvtoTypeText, mida hiljem kasutatakse valitud kaubamärgi kuvamiseks dünaamilisele tekstiväljale. Lisaks määratakse kindlaks grupp, kuhu auto langeb. Need avaldused on suletud Tell Target plokki. Märk "/" näitab, et muutujad asuvad põhikihis, mis sisaldab kõiki teisi klippe.

Operaator Mine ja peata (HideWin) seab vormi pärast nupu klõpsamist nähtamatusse olekusse, st samaaegselt nupu klõpsamine sulgeb akna. See on õigustatud, kuna automargi valik on selge.

Unikaalsete liideseelementide loomine

Siin tuleks veidi selgitada neile, kes pole veel flash-programmeerimisega kursis: selle tehnoloogia üks peamisi tehnikaid on klipi stabiilsete olekute kasutamine. Me ei anna terminite definitsioone, need on spikrifailides ja õpikutes.

Seega on stabiilsete olekute kasutamiseks vaja luua mitu võtmekaadrit – vastavalt olekute arvule. Igasse kaadrisse asetame elemendid, mis peaksid selles olekus nähtavad olema. Kui kaadris pole elemente, vastab see klipi nähtamatule olekule. Lisaks nõuab iga võtmekaader avaldust Peatus. Selle operaatori olemasolu ei võimalda klippi esitada ja see jääb valitud kaadrisse nii kauaks, kui see programmi loogika kohaselt on vajalik.

Automargi valimise menüüga näites on esimeses kaadris aken koos kõigi nuppudega näha. Klipp seatakse sellesse olekusse, kui klõpsate peaaknas automargi valiku nuppu. Teise kaadri omadustes on silt koos nimega HideWin ja ei sisalda objekte. Üleminekute tegemine operaatori poolt Mine ja Peata, saame juhtida menüü nähtavust kõikjal meie välkfilmis.

Jooniselt fig. 3 näete, et see klipp sisaldab kahte kihti. Mugavuse huvides on objektid ja kood eraldatud erinevatesse kihtidesse. See ei mõjuta programmi täitmist.


Riis. 3. Objektid ja kood on eraldatud erinevatesse kihtidesse.

Kuna me räägime stabiilsetest olekutest, märgime kohe teise objekti, milles seda tehnikat kasutatakse. See on raadionupp (CheckBox element). Selles programmis on neid päris palju. Sellist elementi rakendatakse väga lihtsalt ja samas on disainivõimalused nendele elementidele ainulaadse välimuse andmiseks erinevalt teistest tehnoloogiatest piiramatud.

Lüliti loomiseks peate looma kaks nupuobjekti. Igaüks neist tähistab üht lüliti stabiilset olekut (joonis 4).


Riis. 4. Lüliti nuppude kaks olekut.

Neid olekuid võib olla rohkem kui kaks – nii palju kui vaja. Järgmisena luuakse ülalkirjeldatud põhimõtte kohaselt lihtne klipp - kaks võtmeraami koos operaatoritega Peatus. Asetame oma nupud erinevatesse raamidesse ja määrame nende nuppude sisse lühikoodi:

Sees (vabasta) Esitus End On

See on kõik. Kui klõpsate mõnel nupul, toimub üleminek ühele kaadrile. Klipi välimus muutub vastavalt. Klipikaadrites saab määrata mõne muutuja, mis salvestab lüliti oleku, näiteks: checked=1 valitud puhul ja checked=0 valimata olekute puhul. See on klipi kohalik muutuja. Sellele juurdepääsuks teistest klippidest peate määrama täieliku või suhtelise tee. Kui kasutate väärtust klipi sees, peate määrama ainult nime.

Stabiilsete olekute põhimõtet kasutatakse kõigi programmide dialoogibokside ja valikuelementide jaoks, nagu standardsed CheckBox ja RadioButtoni elemendid.

Pöördume tagasi meie programmi algoritmi juurde. Siin kasutatakse lüliteid, mida just vaatasime. Kindlustusriskide valiku aken sisaldab viit sellist lülitit; igal riskil on oma lüliti (joon. 5).

Auto Casco üksuse valimisel tühjendatakse kõik muud märkeruudud. Nelja riski (st kõik peale liikluskindlustuse) valimise tulemuseks on liikluskindlustuse artikkel ja kõik ülejäänud lähtestamine. IN selles näites värskendamine toimub pärast akna sulgemist; teisisõnu, kogu see loogika pole kasutajale nähtav, vaid kogu töötlemiskood erinevaid olukordi kogutud ühe nupuga akna sulgemiseks. Koodi raadionuppude vahel jagades oli võimalik olekumuutus kohe nähtavaks teha. Siin on raadionupud erineva käitumisega – nii CheckBox kui ka RadioButton ning kumbki valik on võimalik. Teist valikut rakendatakse teises dialoogiboksis ("Auto hoiukoht"). Seal on kõik olekud üksteist välistavad ja raadionupud käituvad nagu RadioButtons.


Riis. 5. Riskide valiku aken viie lülitiga.

Allpool on täielik kood nupud riskivaliku paneelil:

Siin on kõik üsna lihtne ja kood on arusaadav isegi algajatele. Esiteks määratakse stringi muutuja /:InsStr väärtus, mis on seotud testi dünaamilise väljaga, mis kuvab valitud riskid. Kui riske pole valitud, on see rea väärtus pärast vormi sulgemist. Kui on tehtud valik, mis määratakse kõikide riskide lippude summeerimisel ja klop muutuja kontrollimisel, siis /:InsStr määratakse tühi string, millele lisatakse valitud riskidele vastavad read. Seda tehakse If()...End If plokkides. Seejärel kontrollitakse kõigi riskide valimist ja seatakse lülitite lippude õige asend. Kui dialoogiboks uuesti avatakse, on lülitid uues olekus. Seda teeb iga lüliti iseseisvalt oma lipu väärtusega (muutujad /:CheckUgon, /:CheckDTP, /:CheckBurst, /:CheckCrim).

Edasi tuleb tuttav üleminekuoperaator, mis sulgeb akna. Ja lõpuks midagi uut – Tell Target() isolatsiooniplokis kutsutakse operaatorit Helistama() peamisel ajateljel. See on protseduurikutse. Flashis on sellel võrreldes teiste keeltega mitmeid funktsioone. Esiteks on protseduurid seotud raamidega ja protseduuri kood on teatud kaadri kood. Teiseks operaator helistama ei läbi parameetreid. Sulgudes olev avaldis on raami silt koos protseduuri koodiga. Kolmandaks, operaator helistama ei mõjuta filmi esitamist täitmise ajal. Kõik üleminekud viiakse lõpule alles pärast seda, kui kõik koodilõigud on antud ajalõikes töödeldud. Ka koodiga raamile üleminekut ei toimu. Filmimängija on samal kaadris, kus see oli enne protseduuri kutsumist.

See konkreetne rida tühjendab tulemuste akna alati, kui arvutuse lähteandmeid üritatakse muuta.

Teisi dialoogibokse pole vaja üksikasjalikult vaadata. Nende kood on ülaltoodust lihtsam. Loetleme need aknad ja räägime lühidalt nende sisust.

  1. Aken "Auto ladustamise asukoht" sisaldab kolme RadioButton-tüüpi lülitit ja nuppu akna sulgemiseks.
  2. Aken "Vargusvastane" sisaldab kolme märkeruudu lülitit ja nuppu akna sulgemiseks.
  3. Aknas "Kindlustusajalugu" (mitu aastat on klient varem olnud kindlustatud ilma kindlustusjuhtumiteta üheski kindlustusseltsis) on tekstiväli ja nupp akna sulgemiseks.
  4. Vigade aknas kuvatakse teade, mis näitab vigu ja kehtetuid sisendväärtusi. Kirjeldustekst erandlik olukord määratud dünaamilisele tekstiväljale.
  5. Arvutuse edukat lõpetamist näitav teateaken koos juhistega vormi printimiseks.

Osa akna parameetreid sisestama ei pea – need on auto valmistamise aasta, sõidukogemus, auto hinnanguline väärtus ja kindlustuse kehtivusaeg. Tekstiväljadele sisestades tuleb kontrollida andmete õigsust ja numbri vastavust antud vahemik, mille määravad algtingimused. Näiteks: kindlustusperiood võib olla ainult täisarv, mitte vähem kui 1 ja mitte rohkem kui 12 (kuud). Need kontrollid tehakse lihtsate tingimuslausete ja ümardamisfunktsiooni int() abil. Kui väärtus on väljaspool vastuvõetavat vahemikku, määratakse vaikeväärtus. Nii väldime ilmselgelt ebaõigete tulemuste saamist.

Rakendusfunktsioonid

Vaatame nüüd veel ühte olulist punkti. Kus me tariifiväärtusi salvestame? Fakt on see, et Flashi versioonil 4 pole massiivide kirjeldamiseks konstruktsioone. Lahenduseks on andmete salvestamine lihtsatesse muutujatesse või massiivide jäljendamine. Massiivid on kasulikud silmuste kasutamisel. Sel juhul silmuseid pole ja tavaliste muutujatega saab hakkama. Meetod ei ole väga elegantne, kuid lihtne ja usaldusväärne. Muutujad lähtestatakse, kui rakendus käivitub peamise ajaskaala esimeses kaadris (stseenis endas). Muutujate kirjeldamiseks on veel üks viis – in tekstifail. Andmed salvestatakse lihtsal kujul:

Var01="value01"&var02="value02"&var03="value03"

See vastab tavapärasele tähistusele "võti=väärtus". Faili laadib üles operaator Muutujate laadimine("failinimi.txt", "/targetClip").

Siin on vaja öelda paar sõna muutujate nimede moodustamise kohta. Sama tüüpi nimede moodustamine on oluline, kui teatud muutujale juurdepääsuks on vaja kasutada teatud arvindekseid. Nagu juba mainitud, ei võimalda Flash 4.0 massiive luua, kuid selle puuduse saab ümber pöörata. Moodustame nimesid dünaamiliselt. Oletame, et liiklusõnnetuse real nimetame muutujad DTP1, DTP2...DTP12. Neid muutujaid saate määrata tavapärasel viisil:

Määra muutuja "DTP1" = 6

ja samamoodi kõigile teistele. Kuid väärtuse ekstraheerimiseks, teades rea ja veeru numbrit, peate tegema järgmist:

Määra muutuja "Temp"=eval("DTP"&n)

kus n on veeru number. See on täpselt samaväärne väljendiga:

Määra muutuja "Temp" = DTP1

Jäänud on vähe – puhas aritmeetika. Kood on jagatud mitmeks protseduuriraamiks, millele pääseb ligi operaatori kaudu helistama. Kõik need kaadrid on stseenis endas. Omades rühma numbrit ja kasutusiga, määrame tariifitabelis veeru numbri. Järgmisena kontrollime märgitud riske ja teeme kokkuvõtte tariifiväärtustest. Kontrollime allahindluste tingimuste täitmist, olenevalt hoiukohast ja vargusvastaste süsteemide olemasolust) ning valime sobiva parandusteguri. Järgmisena võetakse arvesse tasuvuskindlustusperiood ja kontrollitakse, kas vahemik jääb vahemikku (antud juhul mitte rohkem kui 30%). Jääb vaid kõike korrutada ja tulemus saada. Kõik call() protseduuride väljakutsed on koondatud nupule "Arvuta".

Kui kõik vajalikud andmed olid õiged, kuvatakse tulemuste aknas kindlustusmakse väärtus. Kui kuskil tehti viga, ilmub erandi hoiatusaken. Kuid mõnel juhul saadakse tulemus ikkagi: näiteks kui arvandmed on valesti sisestatud ja programm asendas vaikeväärtuse. Pärast seda sisestage lihtsalt soovitud väärtus õigesti ja vajutage uuesti nuppu "Arvuta".

Veidi serveriskriptidest

Ülaltoodud vormil on ka loendur tehtud arvutuste jaoks. See on Perli programm. Kuna sellel pole programmiloogikaga midagi pistmist ja seda saab ohutult eemaldada, ei käsitle me siin selliseid lisafunktsioone nagu suhtlemine serveri skriptidega. Põhimõttelisi raskusi selles pole, kuid serveriskriptidega suhtlemine on omaette suur teema ja sellel on palju peensusi.

Tulemuse väljatrükk

Kui vigu pole, ilmub aken teatega arvutuse eduka lõpetamise kohta ja vihjega, kuidas kasutaja saab vormi printida printerile. Printimisel kasutatakse Flash-videopleieri või brauseri enda pakutavat võimalust. Paremklõpsu kontekstimenüüst printimine annab parim tulemus varjundite edastamisel, mis on eriti märgatav gradienttäidete olemasolul. Selle väljatrükiga saab kasutaja tulla ettevõtte kontorisse ja taotleda kindlustust.

Tulemus

Oleme oma ülesande täielikult täitnud kasutades Flashi 4.0, ilma programmi põhiloogika jaoks täiendavaid tehnoloogiaid kasutamata. Täielikult funktsionaalne rakendus selle maht on umbes 40 KB ja pärast allalaadimist ei vaja see serveriga ühendust. Arvutuste arv on piiramatu. Kasutaja saab lähteandmeid nii palju muuta, kui talle meeldib ja tulemusi koheselt saada. Potentsiaalne vaatajaskond, kes saab seda programmi ära kasutada, on umbes 95% Interneti-kasutajatest. Ja samal ajal oleme praktiliselt vabad konfliktidest brauserite, süsteemide ja platvormide versioonide vahel. Flash-tehnoloogia on tänapäeval ühe müüja tehnoloogia, mis lihtsustab arendaja ülesannet. Vormi liides on täiesti unikaalne ja samas on graafilise osa kulud minimaalsed. Usun, et eelised on piisavad, et tulevikus sarnaste ülesannete jaoks ära kasutada Flash tehnoloogia Macromediast.

Viimane artikkel oli pühendatud animatsioonile. Lõime animatsiooni, mis põhines liikumise vaheldumisel, kujundite vaheldumisel ja lihtsalt üksikute kaadrite järgi liikumise komponeerimisel. Arvan, et on aeg liikuda edasi arenenuma teema juurde, vaadeldes tööriista, mis loob aluse enamikule kvaliteetsetele Flash-filmidele.

See tööriist on ActionScript, Flashi sisseehitatud sündmustepõhine keel. ActionScripti uusim versioon (mis on Flash 5-s olemas) erineb oluliselt ActionScriptist, mis oli Flash 4-s. Kui sisse eelmine versioon, see oli piiratud komplekt käske, mis võimaldasid ainult põhitoiminguid ja mis sisestati mitte eriti kasutajasõbraliku liidese abil, siis on uus ActionScript võimas keel, suurendatud käskude komplekti, klasside toe, pärimise (!) ja palju mugavama liidesega.

ActionScript muudab teie lehed interaktiivseks. Sündmustele saate reageerida hiire või klaviatuuri abil ning teatud kaadrit mängides saate sooritada mis tahes toiminguid.

ActionScripti täielikuks valdamiseks on soovitav omada juba programmeerimiskogemust (soovitavalt C++, JavaScript vms). Üks Flash-keele eeliseid on aga see, et sellesse kvaliteetse koodi kirjutamiseks ei pea te olema Flashi professionaal ega ActionScriptiga täielikult tuttav. Saate kasutada neid keelefunktsioone, mida peate oma töö jaoks vajalikuks.

Kuna see artikkel käsitleb keele põhitõdesid, käsitleme selles järgmist:

  • Toimingute paneel on koht, kus toimub peaaegu kogu suhtlus ActionScriptiga.
  • Nupud – kuidas panna need töötama nii, nagu meie nõuame.
  • Teed – kuidas pääseda vajalikele objektidele?
  • Põhitoimingud Flash-koomiksiga (filmiklippidega) – juhime filmi esitamise protsessi vastavalt oma soovile.
  • Silumine ActionScriptis – väljundi ja siluri aknad.

Selle artikli eesmärk on anda teile tunnetus ActionScriptist, näidata, et seda keelt saab kasutada nii väga muljetavaldavate programmide loomiseks kui ka põhitoimingute tegemiseks, mis muudavad teie lehe palju atraktiivsemaks.

Tingimused

Enne konkreetsete toimingute juurde asumist mõned ActionScripti terminid:

  • Tegevused- need on juhised, mis ütlevad Flashi koomiksile, mida teha. Nendest tuleneb keele nimi - ActionScript (sõna-sõnalt - action script). Lepime kokku, et selle artikli raames kasutame mõistet “juhised”, et mitte segi ajada tegelike toimingutega, mida teeme.
  • Sündmused- need on toimingud, mis toimuvad koomiksi mängimisel. Sündmused võivad toimuda näiteks siis, kui teatud kaadri laadimine lõpeb, kui jõuame teatud kaadrini, kui kasutaja vajutab klaviatuuril klahvi või hiirekursor on meie objekti kohal.
  • Väljendid on käsu mis tahes osa, mis loob väärtust. Järgmised näited on väljendid: 2 + 2, 2 * 2, a + b, 2*pi*r, (15 + k) * juhuslik (10).
  • Funktsioonid on koodiplokk, mida saab uuesti kasutada. Saate edastada funktsioonile väärtusi ja saada sellelt tagasitulemuse. Näiteks, arv = hanki_värv(15, 24). 15 ja 24 on argumendid (või parameetrid) funktsioonile get_color, mille tagastatav väärtus kirjutatakse arvmuutujasse.
  • klassid on objektide tüübid. Näiteks puu klass on taim. Flashil on mitmeid eelmääratletud klasse (nagu JavaScripti klassid). Saate luua oma klasse või muuta olemasolevaid.
  • Juhtumid on sõna otseses mõttes teatud klasside näited. Näiteks võib taimeeksemplar olla puu, põõsas või lill. Eksemplar on juba konkreetne reaalne objekt. Kui klass on objekti (eksemplari) definitsioon, siis eksemplar on juba konkreetne teostus, see on klass tegevuses. Igale eksemplarile saab anda nime, et selle kaudu pääseks ligi objekti funktsioonidele või muutujatele.
  • Käitlejad on spetsiaalsed juhised, mis töötlevad sündmusi. Näiteks onClipEvent- konkreetse sümboliga seotud toimingute käitleja (vt.).
  • Operaatorid on keeleelemendid, mis arvutavad väärtusi ühe või mitme argumendi põhjal. Näiteks liitmisoperaator (+) tagastab sellest vasakule ja paremale jääva kahe väärtuse summa.
  • Muutujad on identifikaatorid, mis võivad väärtusi salvestada. Näiteks a = 5; või nimi = "Mihkel".

Neid termineid kasutame ActionScripti arutamisel. Nii…

Toimingute paneel

Toiminguriba kasutatakse ActionScripti programmide kuvamiseks ja sisestamiseks (joonis 1). Paneelil on kaks töörežiimi – tavaline (mannekeenide jaoks) ja ekspert. Eksperdirežiimis on käskude loend lihtne tekstisisestusväli. Tavarežiimis ei saa me käske otse redigeerida. Selleks kasutage valikute paneeli.

Juhise saate lisada, klõpsates nuppu “+” (vt joonis 1) või valides keeleelementide loendist sobiva juhise. Lisaks on Flashis kõigi toimingute jaoks võtmejadad, mida saab kasutada palju kiiremini. Neid näidatakse nupu "+" menüüs igast toimingust paremal. Näiteks funktsiooni lisamiseks stop (), peate vajutama Esc+st (järjekorras: Esc, siis “s”, siis “t”).

Saate juhendi kustutada, valides selle ja vajutades nuppu "-" (või lihtsalt klahvi Delete).

Soovitan mitte kohe ekspertrežiimi kasutama hakata, kui teil pole Java-laadsetes keeltes (C++, Java, JavaScript) programmeerimise kogemust. Tavarežiimil on suur eelis, mis muudab selle algajatele asendamatuks - keele süntaksiga on palju vähem vigu. See aitab algajatel kiiresti mõista ActionScripti keerukust.


Riis. 1 – toiminguriba

Toimingute paneel kuvab hetkel valitud objekti või raami toimingud.

Nupud

Esimene asi, mida soovite Flash-interaktiivsust õppima asudes teha midagi, mis reageeriks kasutaja tegevusele, "elustada" teie loomingut, lisada tagasisidet. Lihtsaim viis seda teha on nuppude abil. Seetõttu alustame nendega.

Nagu teate, on Flashis nuppude loomiseks spetsiaalne sümbol - nupp (vt.). Oletame, et olete juba õppinud nuppude loomist, nüüd õpime, kuidas jälgida nendel nuppudel tehtud klikke.

Nupud sisse Macromedia Flash meil on ulatuslik sündmuste loend, millele saame reageerida:

  • vajutage- hiirenuppu vajutatakse, kui kursor on nupu sees;
  • vabastada- hiirenupp vabastatakse, kui kursor on nupu sees;
  • vabastada väljaspool- hiirenupp vabastatakse, kui kursor on nupust väljas;
  • ümberminek- hiirekursor siseneb nupule;
  • lahti rullima- kursor läheb nupust kaugemale;
  • dragOver- kursor siseneb nupu piiridesse, samal ajal kui nuppu vajutati ja hiireklahvi vajutati;
  • dragOut- kursor liigub nupust kaugemale, samal ajal kui nuppu vajutati ja hiireklahvi vajutati;
  • klahvi Vajutage("klahv") - vajutati "klahvi". Klahvide loendit saate vaadata Flashi abis (Key objekt) või kasutada soovitud klahvi sisestamiseks suvandite riba.

Kahjuks "mõistab" Flash ainult hiire vasakut nuppu. Parempoolset kasutatakse kontekstimenüü kutsumiseks (paremklõps mõnel Flashi koomiksil). Ma pole veel kohanud ühtegi võimalust Flashis keskmise klahvi või hiireratta tabamiseks; ma arvan, et neid pole.

Need sündmused peatatakse direktiivi abil peal(). Selle süntaks on:

(sündmusel) (... // Meie tegevus)

Allpool saate proovida mõnda sündmust ise käivitada.

Väga sageli kasutatav näide on lingi jälgimine nupu klõpsamisel:

Sees (väljalase) ( getURL("http://rubs.boom.ru"); )

Selle stsenaariumi testimiseks tõstke oma nupp esile, vajutage klahvikombinatsiooni Ctrl+Alt+A ja sisestage programm.

Nii saate hõlpsalt pealt kuulata kõiki nupuga seotud sündmusi. Noh, kuidas neid kasutada, on täielikult teie kujutlusvõime küsimus.

Filmiklippide põhitoimingud

Suur hulk Flashi loovust tuleneb sümbolitega manipuleerimisest. Peaaegu kõik põhitehnikad, kõik nipid ja efektid on ilma nende toiminguteta võimatud.

ActionScriptiga saate tegelastega teha peaaegu kõike, mida soovite. Peate lihtsalt meeles pidama, et neid toiminguid saab teha ainult vastusena kasutaja toimingule või siis, kui ajateljel esineb teatud kaader.

Mis meil siis on? Loetlen ainult peamised (minu arvates) tööriistad. Ülejäänu leiate keeleelementide loendist või spikrist.

Filmiklipi funktsioonid, mida saab nimetada:

  • mängi () - alustab või jätkab klipi taasesitust;
  • stop () - peatab klipi taasesituse;
  • GotoAndPlay() - läheb teatud kaadrile (stseenile) ja jätkab taasesitust;
  • gotoAndStop() - läheb kindlale kaadrile (stseenile) ja peatab taasesituse.

Klippide omadused (parameetrid), mida saab lugeda/muuda:

  • _x, _y - klipi koordinaadid (pikslites);
  • _xscale, _yscale - klipi skaala (protsentides), vastavalt horisontaalselt ja vertikaalselt;
  • _laius kõrgus - klipi laius ja kõrgus (pikslites);
  • _rotatsioon - klambri pöördenurk (kraadides);
  • _alpha - klipi läbipaistvus (protsentides);
  • _nähtav - nähtavus.

See pole veel kõik, mida klambritega teha saab. Kasutage teisi parameetreid, katsetage, olge loominguline!

Nimed

Klippidele juurdepääsuks peame mõistma objekti nime (eksemplari nimi) ja objekti tee (sihttee) mõistet. Leppigem kokku, et filmilõik ja objekt on meie jaoks üks ja sama.

Objekti nimi on konkreetse sümboli eksemplari nimi. Oletame, et meil võib olla sümbol - auto ja selle sümboli eksemplare nimetatakse "Masin1", "Masin2", "Pickup", "Zaporožets"...

Objektile nime andmiseks tuleb objekt valida ja paneeli Instance (Aken->Paneelid->Instants, Ctrl+I) veergu Name sisestada objekti nimi (joon. 2 ). Nimed võivad koosneda ainult tähtedest, numbritest ja allkriipsust ("_") ning nimi ei tohi alata numbriga.


Riis. 2 - Eksemplari paneel

Rajad

Objekti tee on objekti nime kirje, võttes arvesse hierarhiat. Püüan selgitada, mis see on.

Teate, et Flashis saab objekte üksteise sisse pesastada, moodustades seega hierarhia. Seega ei paku see pesastamine mitte ainult objektide käsitsemise mugavust, vaid piirab ka objektide nimede nähtavust. Nähtavus on piiratud selle tasemega. Objekt pääseb otse (nime järgi) juurde ainult nendele objektidele, mis on hierarhias ühe taseme võrra madalamal.

Teisel tasemel objektile juurdepääsemiseks peate teadma teed selle juurde. Pealegi saab tee määrata kas absoluutselt (hierarhia kõige kõrgemalt tasemelt) või suhteliselt (praegusest tasemest).

Tee sisaldab objekte, millest peame läbima hierarhiapuud, et jõuda punkti kaudu loetletud objektini. Lisaks on mitmeid viiteid (võime nimetada neid "virtuaalseteks objektideks"), mis on sageli väga kasulikud:

see - osuti "iseendale" (st praegusele objektile). Seda võib vaja minna näiteks siis, kui on vaja suunata kursor objektile, kust seda funktsiooni kutsutakse.

_vanem - osuti "vanemale". Osutab objektile seistes taset hierarhias kõrgemal.

_juur - "juur". See on hierarhia algus. Absoluutse tee määramisel ilma selleta ei saa.

Tee näeb välja selline:

leaf.play();- alamobjektil leht(lehe) funktsiooni kutsutakse mängi();

_parent.tree.leaf.stop();- eeldatakse, et ühel tasandil on objekt puu, millel on objekt leht, millest funktsioon kutsutakse stop();

_root.banner._visible = vale;- tee klipp bänner, asub 1. tasandil, nähtamatu.



Riis. 3 – klippide hierarhia

Illustreerimiseks võtame 5 objekti hierarhia (joonis 3). Objektid 1-4 on 1. kihil, objekt 5 on 2. kihil. Objekt 2 on pesastatud objektis 1 ja objekt 3 on pesastatud objektis 2. Pildil olevad objektid on visuaalselt üksteise sees, kuid see ei tähenda mingil juhul, et see peaks nii olema "päris elus". Siin on need selguse huvides rühmitatud. Kuna objekti nimi ei saa alata numbriga, siis nimetagem meie objekte obj1-obj5.

Nüüd tegeleme radadega. Kõigepealt vaatame, millised objektid võivad üksteisele nimepidi viidata. obj1 saab ühendust võtta obj2, A obj2- Et obj3, kuid samal ajal obj1ühendust ei saa obj3 otse, sest see ei sisaldu obj1, ja sisse obj2.

Oletame, et esimene objekt vajab objekti 3, et alustada uuesti esitamist 1. kaadrist. Seda tehakse järgmiselt.

Obj2.obj3.gotoAndPlay(1);

Selleks, et 4. objekt muudaks 1. objekti (märkus kõigi alamobjektidega!) poolläbipaistvaks, peab ta oma skripti kirjutama järgmise:

Parent.obj1._alpha = 50;

Root.obj1._alpha = 50;

Sest obj4 on hierarhia esimesel tasemel, siis selle jaoks _juur Ja _vanem- sama.

Nüüd kirjutame objekti 3 jaoks skripti, mis muudab objekti 5 nähtamatuks, kui hiirenuppu vajutada. Objekti 3 skriptis kirjutame:

OnClipEvent (mouseDown) ( _root.obj5._visible = vale; )

Selles lõigus oleme kasutanud absoluutset teed. Kui kasutaksime suhtelist, näeks see välja järgmine:

Parent._parent._parent.obj5._visible = vale;

Loodan, et sain teeprobleemi selgeks.

Ülaltoodud näited näitasid mitte ainult seda, kuidas teed välja näevad, vaid ka seda, kuidas funktsioone kutsutakse ja atribuutide väärtusi omistatakse.

dobe Flash Tomilova Jelena Anatoljevna

8. loeng . Programmeerimine sisse Välklamp

Plaan

Sissejuhatus

Videotele interaktiivsuse lisamiseks Välklamp on sisemine skriptikeel ActionScript.

ActionScript on programmeerimiskeel, mille kaudu Välklamp saadetakse ajasõltuvuste, videoklippide, nuppude ja muude objektide käsud ja päringud.

ActionScripti keel loodud ECMA-262 standardi alusel, mis omakorda põhineb keelel JavaScript. Sisuliselt ActionScript on sort JavaScript , kohandatud ja optimeeritud keskkonnas töötamiseks Välklamp.

Väga sageli abiga ActionScript Kergesti on saavutatavad eesmärgid, mida muidu oleks raske või isegi võimatu saavutada. Ilma ActionScript realiseerida saab vaid väikest osa Flashi võimalused. Näiteks on ActionScript vajalik igasuguse interaktiivsuse rakendamiseks, näiteks reageerimiseks, kui kasutaja klõpsab hiirenupul või vajutab klaviatuuri klahvi. Lisaks on ActionScript ainus viis ajaskaalal kindlale kaadrile hüppamiseks või videoklipi esitamise alustamiseks või peatamiseks. Küll aga need lihtsaid näiteid ei paljasta rikkust, paindlikkust ja lõputuid võimalusi, mida ActionScript keskkonda kasutavatele arendajatele avab Välklamp . ActionScript on Flashi emakeel ja ilma seda vähemalt minimaalselt valdamata oled nagu inimene, kes viibib võõras riigis ja on sunnitud suhtlema žestide abil. Sel juhul peate leppima vähemaga kui see, mida tegelikult saada tahaksite.

Tavaliselt kasutamisel ActionScript õnnestub SWF-faile hankida väiksemad suurused ja koos parim kvaliteet kui vahepealsete vastenduste loomisel. Teine eelis on see erinevaid ülesandeid Võimalik on sooritada suurema täpsusega, näiteks liigutada videoklippi tööpiirkonnas täpselt määratud asukohta.

Toimingute kasutamiseks ActionScript , sa ei pea olema programmeerija. Muidugi tuleb programmeerimiskogemus kasuks keeruliste stsenaariumide loomisel. Samas pole ActionScripti skriptide kirjutamisel vaja eelnevat kogemust. Toimingute valimiseks ja sidumiseks filmiobjektidega pakkusid Flashi loojad lihtsa ja selge liides Toimingute paneel. Seda paneeli kasutades on teil juurdepääs ActionScripti käskude teegile, mis võimaldab skriptikoodi sisestamisel oluliselt aega kokku hoida.

Seega on ActionScript objektorienteeritud programmeerimiskeel, mis on keskkonnale omane Välklamp . Selles kontekstis terminobjektorienteeritudtähendab, et stsenaariumid on seotud filmi objektide või elementidega. Kui need objektid saavad filmi esitamise ajal teate teatud sündmuse kohta, käivitatakse nende skriptid (või toimingud). Näiteks:

sisse (vajuta) (

gotoAn d Play("nextStop")

Selle stsenaariumi korral liigub pressisündmuse korral taasesituspea kaadrile, millel on silt nextStop, ja taasesitus jätkub sellest punktist. Teisisõnu käivitab sündmus toimingu, mis muudab filmi esitamise järjekorda.

Sündmuste ja toimingute suhe on objektorienteeritud programmeerimise põhiomadus. Kui teil pole skriptide kirjutamise kogemust või olete programmeerimisega täiesti võõras, võib see keel olla mõnevõrra segane. Siiski ärge heituge. Kui olete keele toimingute, süntaksi ja struktuuriga tuttavaks saanud ActionScript muutub teie jaoks vähem salapäraseks.

ActionScripti abil saate

  • kontrollida filmi taasesituse edenemist;
  • luua animatsiooni programmiliselt, ilma ajaskaala kasutamata;
  • saada kasutajalt andmeid;
  • laadida andmeid failidest;
  • kontrolli helisid;
  • ... ja palju muud.

Adobe Flashi versioonis 9.0 (CS3) Peamine programmeerimiskeel on ActionScript 3.0 algstaadiumis on seda siiski üsna keeruline uurida ja me ei võta seda arvesse.

Samal ajal toetatakse ka vana "lihtsat" versiooni ActionScript 2.0 , mida me kasutame.

Pidage meeles, et uute FLA-failide loomisel peate alati valima dokumendi tüübi Flash-fail (ActionScript 2.0) .

ActionScripti programmi nimetatakse skriptiks. . See koosneb eraldi koodiplokkidest, mida saab seostada filmi teatud elementidega:

  • võtmeraamid, käivitatakse kood iga kord, kui seda kaadrit esitatakse;
  • nupud või klambrid , kood käivitatakse, kui midagi juhtub

Kasutada tegevusi filmistsenaariumide kirjutamiseks Välklamp , peate esmalt paneeli uurima Tegevused.

Toimingute paneeliga tutvumine ( toimingud)

Toimingute paneel (Toimingud) See on liides skriptide loomiseks, mis käivitatakse Flash-filmi esitamise ajal. Töötage paneeliga Tegevused ) on võimalik kahes režiimis: Normaalne ja asjatundlik (Asjatundja). Režiimis Tavaline mõned on kasutajale kättesaadavad automaatsed funktsioonid koodi loomine, seega on see režiim soovitatav algajatele. Tavarežiimis töötades saate luua toiminguid ja lisada neid oma filmile, valides sobivad menüüelemendid ja lohistades hiirega elemente. Eksperdirežiim sobib rohkem kogenud arendajatele. IN see režiim paneel Tegevused (Actions) on rohkem nagu aken tekstiredaktor, kuhu kasutaja sisestab iseseisvalt skriptikoodi.

Paneeli avamiseks või laiendamiseks Tegevused , Tehke üks järgmistest toimingutest.

  • akna menüüst (Aken) valige Tegevused;
  • vajutage klahvi< F9>.

Pärast seda ilmub või laieneb ekraanile paneel Tegevused (Toimingud). Kui see paneel oli avatud, kuid peidetud teise akna poolt, liigub see ette.

sisaldab kategooria ripploendit, mis võimaldab juurdepääsu ActionScripti teegile. Kui olete sobiva toimingu valinud, saate selle hiirega skripti kuvamisalale lohistada.

Skripti kuvamisalakuvab praeguse skripti kõik lauseridad.

võimaldab vahetada filmi erinevate elementidega seotud stsenaariume. Kui valite ulatusel elemendi, mida saab skriptiga juhtida, lülitub toimingute paneel automaatselt selle elemendiga seotud skripti kuvamisele.


Objektitoimingutega töötamine

Flash-filmides saab toiminguid seostada kahte tüüpi objektidega: nuppude ja klippidega. Seotud toiming täidetakse, kui objekt saab sündmuse täitmisteate. Nuppude puhul tulevad need teated enamasti hiire või klaviatuuri signaalide kujul. Klipisündmuste teated ilmnevad klipi endaga toimunud muudatuste või interaktsioonide tulemusena. Kui seostate toimingu objektiga ja loote skripti, määrate iga objekti jaoks sündmuse allika. Toimingud on seotud nuppude ja klippidega, kuna need elemendid on Flash-filmi interaktiivsed komponendid. Objektidena saavad nad filmi taasesituse ajal vastu võtta hiiresündmusi, andmeid ja muud tüüpi teavet. Objektide ja nendega seotud tegevuste kaudu loodud struktuur määrab, kuidas publik filmiga suhtleb.

Oluline on meeles pidada, et nupud ja klipid salvestatakse Flashi teeki kui tegelased. Iga kord, kui tegelast filmis kasutatakse, kasutatakse seda ka tegelikult eraldi koopia sümbol või kopeerida.

Eksemplari võib pidada sümboli koopiaks. Eksemplaris tehtud muudatused ei mõjuta selle sümboli põhisümbolit ega muid esinemisjuhte. Sama põhimõte kehtib ka toimingute seostamisel sümboli eksemplariga. Kõik sümboli eksemplariga seotud toimingud tehakse ainult siis, kui film kasutab see koopia. See tähendab, et toimingud on seotud ainult konkreetse sümboli eksemplariga.

Kuid mis tahes tegevust tehakse ainult siis, kui filmis toimub teatud laadi sündmus. ActionScriptis (ja paljudes teistes objektorienteeritud keeltes) juhib toiminguidsündmuste käsitlejad.

Toimingute kasutamine

Toimingute kasutamiseks Flash-filmis peate need seostama objekti või kaadriga. See protsessüsna lihtne ja hõlmab objekti või raami valimist, valimist nõutav tegevus ja toimingu jaoks vajalike eriparameetrite määratlemine. Kõik toimingud mõjutavad ainult seotud objekti sümboli eksemplari või toiminguid sisaldavat üksikut kaadrit.

Toiminguid kasutatakse taasesituse paigutuse, interaktiivsete omaduste, voo ja filmi suuna juhtimiseks. Lühidalt öeldes saab toimingu abil täpselt määrata nii taasesituse järjekorra kui ka filmi reaktsiooni kasutaja sisendile. Tänu tegudele Välklamp vähem nagu animatsiooniprogramm ja pigem keskkond interaktiivsete multimeediumirakenduste arendamiseks.

Mõned selle võimalused Välklamp tänu toimingute kasutamisele:

  • Looge keerukaid interaktiivseid navigeerimisskeeme.
  • Muutke filmi taasesituse kvaliteeti.
  • Suhelge Internetis hostitud HTML-dokumentidega ja vahetage andmeid serverirakendustega.
  • Andmete vahetamine hostrakenduste või muude Flash-filmidega.
  • Esitage teisi filme põhifilmis.

Võimalus juhtida stseene ActionScripti skriptide abil

Stseenide kasutamine muudab selle palju lihtsamaks üldine korraldus filmi sisu, etteantud stseenide taasesituse jada viib lineaarsete filmide loomiseni. Kuid lisaks mitmetele eelistele (näiteks kahte stseeni ei saa korraga mängida) on sellel ka puudused, mis on seotud suutmatusega muuta stseenide esitamise järjekorda. Selle probleemi saab lahendada ActionScripti skriptide (eriti kaadritoimingute) abil, mis võimaldavad teil stseene manipuleerida ja ümber järjestada.

Mõned toimingud, mida saab kasutada stseenide juhtimiseks.

  • GotoAndPlay() . Toimingu gotoAndPlay() kutsumine paneb esituspea hüppama konkreetsele stseenile ja kaadrile. Sellest kaadrist film jätkub.
  • gotoAndStop(). Helistades sellest tegevusest toimub üleminek teatud stseenile ja kaadrile ning filmi taasesitus peatub.
  • mängi () . See toiming võimaldab teil pärast peatamist filmi esitamist jätkata.
  • stop () . See toiming võimaldab teil filmi esitamise peatada.

Hiiresündmused

Kui seote toimingu nupu eksemplariga, määrab Flash sellele toimingule automaatselt hiire sündmuste töötleja. See töötleja määrab, milline sündmus filmi taasesituse ajal käivitab skriptis sisalduva toimingu (või toimingute). Hiire sündmuste käitleja määratakse toiminguga peal().

Hiire sündmuste töötleja määramiseks või muutmiseks järgige neid samme.

  1. Valige nupp, millega soovite toimingu seostada või mille sündmusekäsitlejat soovite muuta.
  2. Avage toimingute paneel ja tehke ühte järgmistest.
    1. Kui soovite määrata hiire sündmuste töötleja, valige toiming on() kategooriast Actions Movie Control.
    2. Kui soovite olemasoleva toimingu hiiresündmuse töötlejat muuta, valige sündmuse nime sisaldav operaatoririda ja märkige parameetrite kuvamisalal vastav märkeruut.
  3. Suvandite ala kuvab erinevate hiiresündmuste töötlejate loendi. Märkige ruut vastava töötleja nime kõrval ja teie skripti värskendatakse automaatselt. Joonisel on kujutatud paneeli Toimingud välimust, kui skripti kuvamisalal on valitud sündmuste käitlejat sisaldav lauserida.

Hiiresündmuste nimetused ja kirjeldused keeles ActionScript:

  • Vajutage. pressiüritus Käivitab toimingu, kui nuppu klõpsatakse, kui hiirekursor on nupuobjekti kohal.
  • Vabasta. vabastamise sündmus Käivitab toimingu, kui nupp vabastatakse, kui hiirekursor on nupuobjekti kohal. See sündmus on vaikimisi aktsepteeritud.
  • Vabasta väljaspool. Release Outside sündmus Käivitab toimingu, kui nupp vabastatakse, kui hiirekursor ei ole nupuobjekti kohal.
  • Klahvivajutus. Klahvivajutuse sündmus pole hiirega seotud. See käivitab toimingu, kui klaviatuuril vajutatakse sellest märkeruudust vasakul asuval väljal määratud klahvi.
  • Veere ümber. Üritus Roll Over Käivitab toimingu, kui hiirekursor asetatakse nupuobjektile.
  • Lahti rullima. väljalaskeüritus Käivitab toimingu, kui hiirekursor liigutatakse nupuobjektist väljapoole.
  • Lohistage üle. Lohistage sündmus üle võib alguses tunduda keeruline. Tegelikult hõlmab see erinevate sündmuste kombinatsiooni. Toimingu käivitamiseks sündmuse abil lohista üle , peate viima hiirekursori nupuobjekti kohale ja klõpsama, viima kursorit objektist väljapoole ja seejärel asetama kursori objektile tagasi.
  • Lohistage välja . Toimingu käivitamiseks sündmuse abil tõmba välja , klõpsake, kui hiirekursor on nupuobjekti kohal, ja seejärel liigutage kursor objektist välja.

Praktiline töö Nr 21. Töö kaadritoimingutega

  1. Looge uus fail Flash dokument.
  2. Looge 1. etapil animatsioon.
  3. Lisage 2. stseen ja looge sellele stseenile animatsioon.
  4. Minge 1. stseeni, lisage kiht ja värvigetegevuse üleminek stseenile 2.

  1. Asetage 2. stseenile või oma projekti viimasele stseenile nupp, millel klõpsamine avab 1. stseeni.

  1. Salvestage fail nimega Perekonnanimi_21.fla.
  2. Avalda .swf-vormingus
  3. Ja saatke see ühes arhiivis.


Praktiline töö nr 22. Mitu tegevust ühes stsenaariumis

  1. Looge uus fail Flash dokument.
  2. Esimeses kaadris 1. kihil kirjutame käsu stop () , et animatsioon ei algaks, st. tegevust ei toimunud.

  1. Loo kiht 2. Alustades kaadrist 2 kuni kaadrini 31, loo animatsioon, mis hakkab mängima hiirenupu vajutamisel.

  1. 31. kaadris seadke animatsioon peatuma, et tegevust ei toimuks.
  2. Lisa kiht 3. Alustades kaadrist 32 kuni kaadrini 62, looge nupu vabastamisel animatsioon.

  1. Lisa kiht 4. Ja aseta sellele nupp. Ja kirjutage toimingud üles:

sisse (vajuta) (

GotoAndPlay(2); // kui vajutate nuppu, toimuvad toimingud alates 2. kaadrist

(väljalase) (

gotoAndPlay(32); // Toimingud toimuvad alates kaadrist 32, kui nupp vabastatakse

  1. Testige programmi.
  2. Salvestage fail nimega Perekonnanimi_22.fla.
  3. Avalda .swf-vormingus
  4. Ja saatke see ühes arhiivis.

Toimingute kasutamine põhiliste filmide taasesituse juhtelementide loomiseks

Oleme juba vaadanud tegevuste seostamise protsessi filmi erinevate elementidega. Selles osas anname ülevaate olulisematest ja kasulikud tegevused ActionScripti keel. Need põhitoimingud on loetletud nende alamkategooriates esinemise järjekorras ( Adobe Flash CS 3 Professional).

Alamkategooria Filmiklipi juht

  • setProperty() . Klipi atribuutide seadistamine: mõõtmed, asukoht jne.
  • onClipEvent() . Määrab klipi sündmuste käitleja, mis toimingu käivitab.
  • peal() . Määrab hiire sündmuste käitleja, mis käivitab teatud toimingu.

Alamkategooria ajaskaala juhtimine

  • GotoAndPlay() . Liigub parameetrina määratud kaadrile või stseenile ja esitab filmi sellest punktist.
  • gotoAndStop() . Liigub parameetrina määratud kaadrile või stseenile ja peatab filmi.
  • mängi () . Filmi mängimine.
  • stop () . Peatage film.
  • stopAllSounds() . Lülitage filmi heli välja.

Alamkategooria brauser/võrk

  • fscommand() . Flash Playeri rakenduste haldus.
  • getURL() . Helistage määratud URL-iga filmile.
  • unloadMovie() . Teiste Flash-filmide üleslaadimine.

Link URL-ile

Toimingu kasutamine getURL() Saate linkida URL-ile otse Flash-filmist. URL-iga linkimine võimaldab teil teha kahte asja. Esiteks saate Flashi abil luua veebilingi ja laadida brauseriaknasse teavet allikast, mis vastab määratud URL-ile. Teiseks saab toimingut kasutada andmete edastamiseks ressursile, mis asub kindlal URL-il.

Toimingu linkimiseks getURL() , peate tegema järgmist.

  1. Valige nupp, raam või klipi eksemplar, millega soovite toimingu seostada.
  2. Avage toimingute paneel.
  3. Elementide piirkonnas ActionScript avatud alamkategooria Brauser/võrk ja teostada topeltklõps toimingu ikoonil getURL(). getURL() toiming sellel on kolm parameetrit, mis tuleb täpsustada: URL, Aken ja muutujad (Muutujad). Samuti on võimalus kasutada avaldist, mis kirjeldab URL-i asukohta. Selleks peate märkima kasti Väljendus (Avaldis) URL-i väljast paremal.
  4. URL-i väljale peate sisestama ressursi absoluutse või suhtelise tee. Absoluutne tee sisaldab täis URL-aadress, näiteks http://www. see - n . ru . Suhteline tee sisaldab teavet faili asukoha kohta faili struktuur, kuhu Flash-film on salvestatud, näiteks see: praegune kaust/kaust/kaust().
  5. Rippmenüü Aken võimaldab määrata, millises aknas brauser URL-i poolt osutatava dokumendi laadib. Saate sisestada konkreetse raami või akna nime, sisestada avaldise, mis kirjeldab akna asukohta, või valida ühe järgmistest ripploendi üksustest.
  • _ise . Dokument laaditakse praeguses aknas, kus filmi praegu esitatakse.
  • _tühi . Dokument laaditakse uues aknas.
  • _vanem . See element osutab praegusele aknale ja võimaldab asendada ainult selle kaadri, kus filmi parasjagu esitatakse.
  • _ülemine . See element on kasulik, kui teie filmi esitatakse kaadris ja uus dokument, millele URL osutab, peab täitma kogu brauseriakna.
  1. Rippmenüüd Muutujad kasutatakse muutujate edastamiseks URL-ile, millele lingite.
  • Ära saada (ärge üle kandke). See element on vaikimisi installitud ja seda kasutatakse juhtudel, kui andmevahetust pole vaja.
  • Saada GET-i abil (ülekanne GET-meetodil). See loendi element valitakse juhtudel, kui on vaja üle kanda mitu muutujat ja edastatavate andmete hulk on väike.
  • Saada kasutades Posti (edastage kasutades POST meetod). See loendi element valitakse juhtudel, kui on vaja edastada suur hulk teavet.

Praktiline töö nr 23. Piltide linkide panemine

  1. Looge uus fail Flash dokument.
  2. Importige kõik vajalikud pildid tulevaste nuppude jaoks ( Ctrl+R).
  3. Valige esimene pilt ja klõpsake F8 . Teisendage see nupuks.

  1. Topeltklõpsake filmilõigul.
  2. Nüüd klõpsake raami pealkirjaga Üle ja lisage raam, vajutades F6.

  1. Loo uus kiht ja klõpsake raami pealkirjaga Üle ja lisage raam (F6). Seejärel kasutage pildi piiritlemiseks ristküliku tööriista (R).

  1. Minge tagasi põhistseeni ja kasutage valikutööriista (V), et klõpsata nupul, vajutage F9 ja sisestage järgmine AS-kood:

  1. Korrake kõiki eelmisi samme teiste piltide jaoks.
  2. Testige programmi.
  3. Salvestage fail nimega Perekonnanimi_23.fla.
  4. Avalda .swf-vormingus
  5. Ja saatke see ühes arhiivis.

Harjutus

Koostage tunni materjali abil esitlus vabal teemal.

Kirjandus

  1. Hurwitz, Michael, McCabe,Laura. Macromedia Flash MX kasutamine. Eriväljaanne.: Per. inglise keelest M.: Kirjastus "William", 2003. 704 lk.: ill. Paralleelselt. titt. Inglise
  2. Watrall E., Gerber N. Tõhus töö: Flash MX . Peterburi: Peeter; Kiiev: DHV, 2003. 720 lk.: ill.
  3. http://www.interface.ru/

LEHEKÜLG 1

ActionScripti elemendi ala

Stsenaariumi rippmenüü

Skripti kuvamisala

Flash programmeerimine

valikkursuse programm ja didaktika käsiraamat õpetajale ja õpilasele

Kursuse programm. 1

1. Sissejuhatus: 1

2. Kursuse teemad: 2

3. Kirjandus: 2

Didaktiline käsiraamat õpetajatele ja õpilastele. 2

1. Sissejuhatus, "raamitoimingute" aken. 2

2. Muutujad. 4

3. I/O väljad. 5

4. Tingimuslik operaator. 8

5. Silmused “parameetriga” ja silmused “while”. üksteist

7. Objektorienteeritud programmeerimine. 17

8. Omaduste programmiline muutmine. 19

9. Kolmekaadrilised tsüklid. Tarkvaraanimatsioon. 22

10. Projekt “Interaktiivne mäng – Lasketiir”. 24

Kursuse programm

1. Sissejuhatus:

Programm Macromedia Flash hämmastab oma võimalustega. Lisaks täiustatud joonistus- ja animatsioonitööriistadele on Flashil sisseehitatud programmeerimiskeel Action Script. Selle keele valdamine võimaldab mitte ainult luua programmianimatsioone, Flash-mänge ja interaktiivseid veebilehti, vaid annab ka teadmisi objektorienteeritud programmeerimistehnoloogiate (edaspidi OOP) kohta.

Hoolimata sellest, et Flashi loojad püüdsid programmeerimist lihtsaks teha ka treenimata kasutaja jaoks, nõuab nende tööriistade valdamine üsna palju aega. See kursus on valikaine; õpilased valivad selle, et teha keskkoolis teadlikumalt erialavalikut. Programmi üksikasjalik uurimine, tõsiste projektide elluviimine võib olla spetsialiseeritud kursuste ülesanne (näiteks "Veebiprogrammeerimine", "Veebikujundus", "Objektorienteeritud programmeerimine" jne), aga ka iseseisev õppimine. Flash-programmeerimise kursus on mõeldud 9. klassi õpilastele, kes on juba tuttavad Flash-animatsiooni ja programmeerimise põhitõdedega. Valikkursuse raames on täiesti võimalik omandada programmeerimise põhitõdesid, OOP-tehnoloogiat ning ellu viia lihtsamaid projekte Flashis. Kursus sisaldab 8 projekti, sealhulgas Flash-kalkulaatori projekt ja interaktiivne mänguprojekt. Kursus on varustatud didaktilise juhendiga õpetajatele ja õpilastele.

Kursuse eesmärk:

Huvitada õpilasi, näidata kaasaegse võimalusi tarkvara interaktiivsete rakenduste loomiseks; tutvustada objektorienteeritud programmeerimise põhitõdesid; Macromedia Flashi teadmiste süvendamine.

Kursuse eesmärk:

Tutvustada objektorienteeritud programmeerimistehnoloogiat; näidata Action Scripti kasutamist interaktiivsete rakenduste loomiseks; luua kaks projekti: Flash-kalkulaator ja interaktiivne tulistamisgalerii mäng.

Nõuded õpilaste teadmistele:

Selle kursuse edukaks läbimiseks peavad õpilased olema põhiteadmised Flashi kohta: lihtsate piltide loomine, teegi sümbolitega töötamine, võtmeraamide mõistmine, Flash-animatsioon, põhitoimingud tegevusskriptis.

Selle kursuse edukaks läbimiseks peavad õpilased omama põhiteadmisi programmeerimisest: valdama selliseid mõisteid nagu algoritm, programm, muutuja ja teadma põhilisi algoritmilisi struktuure.

Nõuded arvutile:

Arvuti, kuhu on installitud Macromedia Flash MX (või uuem).

Kursus "Flash programmeerimine" on mõeldud 12 tunniks.

2. Kursuse teemad:

Õppeained

tundide arv

Korda Flashi.

I/O väljad, algoritmilised struktuurid

väljatüübid (staatiline, dünaamiline, väljund); muutujate, märgi- ja numbriliste muutujate deklareerimine, nupule koodi lisamine, tingimuslik operaator, silmus parameetriga, while loop, nende rakendamine Flashis.

tüüpilised ülesanded: lennu maksumuse arvutamine, ruutvõrrandi lahendamine, astendamine, seeria jadasumma elemendi leidmine

projekt: Flash-kalkulaator

OOP põhimõisted

objekt, omadused, meetod, sündmus

Omaduste programmiline muutmine. Tarkvaraanimatsioon.

muudetavad omadused; sümbolite loomine, nende nimetused; märkide omaduste muutmine, programmikoodi täitmise omadused Flashis, kolme kaadri tsüklid.

Tüüpilised ülesanded: muudetavate omadustega objekti loomine (vajutades vastavaid klahve). liikuva objekti loomine.

projekt: Interaktiivne mäng Shooting Range.

3. Kirjandus:

Beluntsov V. Macromedia Flash: Animatsioon Internetis. "DESS Com", Moskva 2001. Flash MX 2004 materjalid saidilt www. *****

Didaktiline käsiraamat õpetajale ja õpilasele

1. Sissejuhatus, tegevuspalett

Macromedia Flashil on oma programmeerimiskeel Action Script. See võimaldab teil muuta Flash-videod interaktiivseks. Keele võimalused on üsna suured, mis võimaldab luua tõsiseid programme. Action Script ei ole iseseisev keel programmeerimine. See on skriptide komplekt - koodifragmendid, mis "elavad" ainult Flash-filmis, mis aga ei sega täisväärtuslike programmide loomist.

Peate meeles pidama, et Action Script on sündmustepõhine keel, see tähendab, et skript käivitatakse sündmuse toimumisel. Selliseks sündmuseks võib olla teatud võtmeraami saavutamine, näiteks viimases võtme raam lisame käsu stop(). Hoolimata asjaolust, et see on vaid üks käsk, on see täisväärtuslik skript, mis käivitatakse viimase kaadri saavutamisel - video peatub. Teine sündmus võib olla hiireklõps ekraaninupp või vajutades klaviatuuri klahvi.

Lisama programmi kood peate valima võtmeraami, kuhu soovite skripti lisada (või valima loodud nupu) ja vajutama klahvi F9 (joonis 1).

Riis. 1 Tegevuspaneel.

Vaatame toiminguakna põhielemente. Vasak pool Aken on hõivatud käskude loendiga, mille saate valida hiire vasaku nupuga topeltklõpsuga. Kõik käsud, ja neid on päris palju, on koondatud kaheteistkümnesse plokki “Global Function”, “Global Properties” jne. Pärast klõpsamist kantakse käsk akna paremasse serva. See sisaldab programmi koodi. Saate kustutada mittevajalikud käsud (kustutusklahv) või liikuda skriptis üles-alla kas kursori klahvide või nuppude abil. Loomulikult tuleb esmalt esile tõsta teisaldatav või kustutatav käsk. Akna alumine osa on antud muudetavad parameetrid iga konkreetne meeskond. Näiteks üleminekukäskluses gotoAndPlay() tuleb sellele reale jõudes näidata, millisele kaadrile minna. Selleks tuleb sulgudesse sisestada vajalik kaadri number.

Programmikoodi kirjutamisel on mugavam ja kiirem koodi käsitsi sisestamine. Oluline on meeles pidada, et ActionScripti keel on sisestatavates käskudes tõstutundlik. See tähendab, et käsk GoToandPlay() on vale.

Jääb veel lisada, et koodi käivitamiseks ja tulemuse vaatamiseks peate sisenema video vaatamise režiimi, selleks vajutage klahvikombinatsiooni Ctrl-Enter.

Ülevaatusküsimused:

Mis on skript? Millised sündmused käivitavad Flashis koodi täitmise? Kuidas toimingupaletti avada? Millistest elementidest koosneb tegevuspalett? Kuidas luua Flash-filmist käivitatavat faili?

2. Muutujad

Iga programmeerimiskeele üks põhimõisteid on muutuja. Eeldatakse, et lugeja on muutuja mõistega tuttav, seega vaatame, kuidas seda Flashis rakendatakse.

Oletame, et tahame lisada kaks numbrit. Selle lihtsa aritmeetilise toimingu tegemiseks looge esimesse võtmekaadrisse nupp: joonistage ristkülik, tehke pealdis ja seejärel teisendage saadud pilt sümboliks (menüü sisestamine - teisenda sümboliks, ärge unustage seadistada sümbol - nupp). Selle tulemusena on ilmunud objekt, mis suudab reageerida hiireklõpsule; seda saab hõlpsasti kontrollida video vaatamise režiimi sisenedes.

Esimene number salvestatakse muutujas x1 ja teine ​​muutujas x2. Lastakse tulemus salvestada summa nime all ja kuvada ekraanil. Väljundivälja loomiseks (sellest lähemalt järgmises õppetükis) klõpsake tekstitööriistal ja valige selle abil ekraani ala - tulevane tekstiväli. Seejärel minge ujuvale Sümboli paneelile (menüüaken - paneelid - sümbol) ja muutke vahekaardil Tekstisuvandid tekstivälja Stutic Text tüübiks Dimamic Text (joonis 2). Nimetage see väli kindlasti Muutuja – summa. Välja ekraanil nähtavaks tegemiseks märkige ka raam/taust märkeruut.

Riis. 2 Looge väärtuste kuvamiseks dünaamiline väli.

Nüüd võrdleme koodi meie tehtud nupuga. Valige nupp ja vajutage F9.

Valige akna vasakpoolses osas plokk Operations – Set Variable. Akna allservas seame parameetrid: muutuja – x1, väärtus 5. Pange tähele, et väärtusvälja kõrval on parameetri lülitusavaldis. See tuleb valida, vastasel juhul salvestab muutuja x1 numbri 5 ja sümboli. Nii määratakse muutuja tüüp. Nagu teate, on AS-is ainult kahte tüüpi muutujaid, numbrilisi ja stringi, kirjeldage tüüpe eelnevalt, nagu keeles tavaks Turbo Pascal. Tehke sarnaseid toiminguid teise muutuja jaoks, selle nimi on x2 ja väärtus on 8. Peame lihtsalt lisama kolmanda rea ​​- määrake kolmas muutuja, selle nimi: summa (sama, mis väljundvälja nimi) , väärtus: x1 + x2, loomulikult valitud elemendi avaldis.

Nende toimingute tulemusena on teil paremal pool joonisel näidatud kood (joonis 3). Pange tähele, et iga käsk on eraldatud semikooloniga; Flash teeb seda automaatselt. Esiteks on käsk sees (vabasta), see näitab, et seda koodi hakatakse täitma, kui hiireklahv nupult vabastatakse. Kuna see kood on vastendatud ekraaninupuga, siis see käsk lisatakse automaatselt. Pärast seda tuleb lokkis sulgudes kood, mis tuleks sündmuse toimumisel käivitada.

See on kõik! Kui tegite kõik õigesti, siis minnes video vaatamise režiimi ja klõpsates oma nuppu, kuvatakse väljundväljale number 13.

Ülevaatusküsimused:

Kuidas määrata muutuja nime teksti- või numbriteabe kuvamiseks? Mis tüüpi muutujaid Flashis kasutatakse? Kuidas näidata, et loodud muutuja on numbriline? Kuidas Flashis nuppu luua ja sellele koodi lisada? Mida tähendab skripti alguses olev käsk on (release)?

3. I/O väljad

Uue programmeerimiskeele õppimine algab programmide kirjutamisega, millesse sisestatakse algväärtused, seejärel toimuvad nendega mõned aritmeetilised teisendused ja tulemus kuvatakse ekraanil. Flash kasutab teksti kuvamiseks ekraanil tekstivälju. Tekstivälja loomiseks tuleb valida tööriist Tekst (tööriistaribal) ja paigutades kursused kohta, kuhu soovid teksti lisada, “joonistad” tekstiploki (joonis 4).

Riis. 4 Looge tekstiväli.

Selle tulemusena on teil staatiline tekstiväli, kuhu saate sisestada mis tahes teksti. Tekstivälju on kolme tüüpi: staatilised, dünaamilised ja väljundväljad. Välja tüüp määratakse sümbolipaneeli vahekaardi “parameetrid” abil (vt eelmist peatükki). Vaatame üksikasjalikumalt iga välja eesmärki ja sätteid:

Staatilist välja kasutatakse Flash-stseeni siltide kuvamiseks. Nagu nimigi ütleb, ei saa seda välja programmiliselt muuta. Teil on võimalik ainult määrata font, suurus, värv jne. Tippimisel laieneb see väli automaatselt, kuvades sisestatud teksti mitmes reas. Sel juhul jääb tekstivälja laiuseks see, mille määrasite tekstiploki “joonistamisel”. Selle muutmiseks tuleb valida plokk tööriistaga Text ja liigutada tekstiploki ülemist paremat markerit.

Joonis 5

Dünaamilist välja kasutatakse väljundväljade loomiseks, mille teavet saab video edenedes värskendada. Tekstiplokile programmiliselt ligipääsemiseks peab sellel olema nimi, mis on määratud väljale “muutuja” (joonis 5). Soovitan kasutada muutujate nimedena ainult ladina tähti ilma tühikuteta. Samas aknas saate lubada atribuudi Border/Background. Nüüd ilmub lehele raam, kuhu kuvatav tekst ilmub, see on väga mugav. Liitkast, kus vaikimisi on valitud Üks rida, võimaldab määrata, kas tekst kuvatakse ühel või mitmel real (MultiLine väärtus). Valitav lüliti, mis on vaikimisi lubatud, määrab, kas kasutaja saab väärtusi valida sellest valdkonnast, et kopeerida need näiteks lõikepuhvrisse. Nagu iga välja puhul, saate määrata teksti parameetreid: font, suurus, värv jne. Kui sisestate sellele väljale teksti, kuvatakse seda seni, kuni programm muudab selle väärtust.

Sisestusvälja või sisestusteksti kasutatakse väärtuste sisestamiseks klaviatuurilt. Sisestusvälja parameetrite aken näeb välja sarnane ülalkirjeldatud aknaga. Peamine parameeter on siin ka väli "muutuja". Määrate, millise nime all kasutaja sisestatud andmed salvestatakse.

Joonis 6

Mõistes tekstiväljade eesmärki, saate teha järgmise projekti. «Arvutisse sisestatakse täiskasvanu lennupileti maksumus, samuti lennul reisivate täiskasvanute ja laste arv. Kui vajutate vastavale nupule, arvutab arvuti välja lapse pileti maksumuse (50% täiskasvanu hinnast) ja lennu kogumaksumuse. Vaata programmi välimust (joonis 6). Nagu selles ülesandes hõlpsasti näha, sisestatakse väärtused ja väljastatakse tulemused; kogu kood tuleb nupu vajutamisel käivitada ja seetõttu tuleb see selle nupuga seostada.

Alustuseks looge viis staatilist tekstivälja ja täitke need sobiva tekstiga.

Koostage kolm sisestusvälja, andke iga välja muutujatele kordumatud nimed, näiteks: stv (täiskasvanute piletihind), kolv (täiskasvanute arv) ja kold (laste arv).

Loo kaks dünaamilised väljad, andke iga välja muutujatele kordumatud nimed, näiteks: std (lastepileti hind) ja itog (lennu kogusumma).

Tehke kaks nuppu "lennuhinna arvutamine" ja "tühjenda väljad"

Esimese nupu jaoks lisage järgmine kood (nupp, parem klahv - toimingud):

if (stv==null) (

if (kolv==null) (

if (kold==null) (

itog = stv * kolv + std * külm;

Eelviimane rida arvutab lapsepileti maksumuse (pool täiskasvanu maksumusest) ja kirjutab selle väärtuse muutujasse std (vastava väljundvälja nimi). Viimane rida arvutab kogusumma (muutuja itog) ja sisestab selle väärtuse vastavale väljundväljale.

Põhimõtteliselt sai nende kahe koodireaga hakkama. Kuid kuna selle programmiga töötav inimene ei pea tingimata sisestama numbrit nulli, kui lapsi lennuga ei kaasata. See tähendab, et lapse pileti maksumus (numbriline väärtus) korrutatakse tühja väärtusega (stringi väärtus). Selle "korrutamise" tulemuseks on veateade vastaval väljundväljal. Selle vältimiseks kontrollib arvuti, kas sisestusväli on tühi (kold==null) ja kui jah, siis määrab muutujale kold väärtuse, mis on võrdne nulliga. Seda konstruktsiooni nimetatakse tingimuslikuks operaatoriks. Sellest lähemalt järgmises teemas. Kui teil on endiselt raske tingimustega töötada, võite need ära jätta, kuid ärge unustage, et tühjad väljad ei tohiks olla!

Projekti lõpuleviimiseks lisame nupule “Tühjenda väljad” vastava koodi:

Nagu näete, sellele nupule klõpsates omistatakse igale muutujale ja seega ka sisend-väljundväljale tühi väärtus (kahe jutumärgi vahel pole midagi).

Ülevaatusküsimused:

Mis tüüpi tekstiväljasid Flashis kasutatakse? Millised muudetavad parameetrid on dünaamilisel tekstiväljal? Millist tüüpi välja kasutatakse väärtuste sisestamiseks klaviatuurilt? Selgitage järgmise koodirea tähendust: itog = stv * kolv + std * kold;? Miks kirjeldatakse projektis kasutatud tingimusoperaatorit?

4. Tingimuslik operaator

Programmi kood, mida me varem vaatasime, on lineaarne. Iga käsk täidetakse alles pärast eelmise toimingu lõpetamist. Elus on kõik veidi keerulisem. Avame vihmavarju, kui sajab, rõõmustame, kui jõuame eesmärgini, ja arvutame ruutvõrrandi juured, kui diskriminant on suurem kui null. Kõigil ülalnimetatud juhtudel tegutseme nii või teisiti. Selliste olukordade rakendamiseks pakuvad kõik programmeerimiskeeled haruoperaatorit või tingimuslikku operaatorit. Action Script pole erand.

Joonis 7

Tingimusliku operaatori kutsumiseks klõpsake käsul Operations - If (Joonis 7). Akna paremas servas kuvatakse järgmine struktuur:

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

Selle asemel<не установлено>peate kirjutama võrdlustoimingu, sisestate selle väljale "Tingimus". Sellise tingimuse näide võib olla z<10, (переменная z меньше десяти).

Vaatame põhilisi võrdlustoiminguid:

> vähem;

< больше;

>= suurem või võrdne;

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

Võrdub (pange tähele kahte võrdusmärki);

Pole võrdne (pange tähele, et hüüumärk tähendab sellele järgneva võrdlusoperaatori eitust).

Tihti tuleb korraga täita mitu tingimust. Selleks kasutatakse Boole'i ​​(loogilisi) tehteid:

&& või ja – loogiline JA;

|| või või – loogiline VÕI;

Või mitte – loogiline EI.

Näiteks tingimus (a == 10) && (z > 5) on tõene ainult siis, kui muutuja a on võrdne kümnega ja samal ajal muutuja z on suurem kui viis.

Tingimus on küsimus, millele saab olla ainult kaks vastust, "jah" ja "ei". Kui tingimus on tõene, siis tehakse lokkis traksidega suletud toimingud.

Kui peame lisama käskude rühma, mis tuleks käivitada, kui tingimus on vale, peate lisama Operations – Else. Seejärel näeb koodi fragment välja selline:

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

Käskude lisamiseks peate viima kursori selle rea kohale, kus käsk peaks ilmuma. Kõik, mida pead tegema, on valida õige käsk vastavas plokis ja klõpsa sellel hiirega.

Joonis 8

Vaatleme, kuidas väljatoodud põhimõtteid rakendatakse ruutvõrrandi juurte leidmise klassikalise probleemi lahendamiseks. “Arvutisse sisestatakse kolm arvu - ruutvõrrandi parameetrid ax2 + bx + c = 0. Sisestatud andmete põhjal määrab arvuti, mitu juurt sellel võrrandil on, arvutab need välja ja kuvab tulemused ekraanile. Esitatakse programmi akna ligikaudne vaade (joonis 8).

Selle projekti lõpuleviimiseks tehke järgmist.

Looge põhistseeni esimesse kaadrisse kolm sisestusvälja ja andke neile sobivad nimed: a, b, c. Tee nende piirid nähtavaks.

Looge mõned staatilised tekstiväljad sisend- ja väljundväljade märgistamiseks: x2, =0, diskrimineeriv jne.

Loo neli dünaamilist tekstivälja: d – diskriminant, r – lahendus, x1 – esimese juure väärtus, x2 – teise juure väärtus.

Looge kaks nuppu "lahenda võrrand" ja "tühjenda".

Esimesele nupule “lahenda võrrand” lisage järgmine programmikood, apostroofiga märgitud tekst - kommentaar, seda pole vaja sisestada:

if (a == null) (

if (b == null) (

if (c == null) (

"Esimesed kolm tingimuslauset kontrollivad, kas väljad a, b, c on tühjad,

Kui jah, omistavad nad neile arvväärtused võrdne nulliga

' arvutatakse diskriminant (muutuja d).

r = "juured puuduvad";

Kui tingimus on täidetud, on diskriminant väiksem kui null muutuja d

‘ aktsepteerib vastavat teksti väärtus

) muidu kui (d == 0) (

r = "üks juur";

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

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

Kasutatakse käsku Operations – Else If. Tänu temale järgmised

"tegevus algab seisukorra kontrollimisega. Kui see on tõsi – diskrimineeriv

‘ võrdub nulliga, tehakse sarnaseid arvutusi, seostatakse muutujaid

' Koos tekstiväljad võtke vastavad väärtused

r = "kaks maisi" + Chr(255);

"Kõige salapärasem rida. On vaja, et kuvatakse kiri "kaks juurt",

"aga meil ei vedanud venekeelse ya tähega. Flash aktsepteerib seda koodi

’ vastab sellele tähele reavahetusena.

Sel eesmärgil lisatakse tekstistringile märgi väärtus 255. See

‘ tegevus – kahe tekstistringi ühendamist nimetatakse konkateneerimiseks.

kd = matemaatika. sqrt(d);

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

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

Ruutjuure arvutamiseks kasutati käsku Math. sqrt(d);

Selle nimetamiseks kasutage käsku Objects – Mathematics – Sqrt

Peame vaid lisama teise nupu jaoks järgmise koodi:

Mulle tundub, et kommentaarid on siin tarbetud. Projekt on valmis. Salvestage, testige.

Ülevaatusküsimused:

Milline konstruktsioon määratleb Flashis tingimuslause? Mis vahe on konstruktsioonidel: kui (<Не установлено>)() else() ja kui (<Не установлено>))? Kuidas määrata Flashis eitust? Mis on Boole'i ​​operatsioonid ja kuidas neid Flashis kirjutatakse? Mis vahe on joonte vahel: a=10 ja a==10?

5. Silmused "parameetriga" ja tsüklid "samas"

Korduvate toimingute tegemiseks kasutavad programmeerimiskeeled spetsiaalseid konstruktsioone, mida nimetatakse silmusoperaatoriteks. Selliseid tsüklilisi konstruktsioone on mitu, vaatleme kahte kõige levinumat: tsüklit "parameetriga" ja tsüklit "while". Vaatame, kuidas neid tegevusskripti keeles rakendatakse.

Silmust “parameetriga” kasutatakse siis, kui on ette teada, mitu korda teatud toimingut tuleb sooritada. Võite tuua järgmise analoogia - supi valmistamiseks peate koorima kuus kartulit. Kui kirjutate toimingud üles lineaarse algoritmi kujul, märkate, et kuus korda korratakse käske “võta kartul”, “koori nahk”, “pese”. Algoritmi kompaktsemaks muutmiseks ja ka selle edaspidiseks hõlpsaks muutmiseks on loogilisem kirjutada see tsükli kujul:

Korda (6 korda) (

"võta kartulid";

"koorida nahk";

"pesta";

Siin on number kuus tsükli parameeter, korduste arv. See, mis on lokkis sulgudes, on korratavad käsud. Neid hukatakse täpselt kuus korda.

Joonis 9

Flashis "parameetriga" tsükli loomiseks peate aknas Frame Actions valima käsu Operations – For. Selle tulemusena ilmub ekraani paremasse serva silmuse kujundus (joonis 9).

Joonis 10

Selle kujunduse jaoks peate konfigureerima kolm välja. Algväärtus – siia tuleb kirjutada mõne muutuja algväärtus, seda nimetatakse ka loenduriks. Näiteks i=1. Tingimuseks on see, kui kaua muutujat i muudetakse. Näiteks i<=10. Следующий – с каким шагом изменяется переменная i. Если вы хотите, чтобы переменная каждый раз увеличивалась на единицу, то можно записать i++. В результате появляется конструкция:

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

Selle tähendus on järgmine: muutuja i võtab väärtused ühest kümneni ja lokkis sulgudes olevaid käske täidetakse kümme korda. Silmuse kehas saab kasutada muutujat i ennast ja seal saab kasutada ka muid algoritmilisi konstruktsioone, tingimuslauseid jne.

Vaatame, kuidas seda disaini rakendatakse järgmises ülesandes. „Loo programm, mis arvutab a astmeni n (n on täisarv). A ja n väärtused sisestatakse vastavatele väljadele. Programmi välimus on näidatud joonisel 10.

Looge üks dünaamiline väli ja nimetage see an.

if(n<>0) {

‘ Probleem on mõttekas ainult siis, kui n > 0, seda kontrollib tingimuslause

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

' Kuna esimesel real on muutuja an juba väärtuse, mis on võrdne a-ga, siis loenduri algväärtus on kaks.

Nupu "Tühjenda" jaoks lisage järgmine kood:

Kommentaarid tunduvad mulle ebavajalikud.

Tsüklit “kuni” kasutatakse siis, kui korduste arv pole ette teada. Jätkame analoogiat - kui inimesed kartuleid kaevavad, teevad nad ka korduvaid toiminguid: “kaevavad põõsa üles”, “koguvad kartuleid”, “panevad kotti”. Asi on selles, et keegi ei tea, mitu korda neid toiminguid teha tuleb. Seetõttu saab selle tsükli kirjutada järgmiselt:

Kuigi (kas kartuleid on?) tee (

Iga kord, pärast määratud käskude komplekti täitmist, tuleb kontrollida, kas tingimus on täidetud; kui jah, siis käivitatakse tsükli keha uuesti.

Joonis 11

Flashis "while" tsükli loomiseks peate valima kaadritoimingu aknas käsu Operations – While. Selle tulemusena ilmub ekraani paremasse serva silmuse kujundus (joonis 11).

Selle kujunduse jaoks tuleb konfigureerida ainult üks väli. Tingimus – millistel tingimustel tsükkel sooritatakse. Näiteks y<10.

Pange tähele, et kui tingimus ei ole tsükli esmakordsel väljakutsumisel täidetud, siis tsüklit kunagi ei käivitata. Samuti on väga oluline, et muutuja y tsükli täitmise ajal muutuks, vastasel juhul programm loopib ja hangub. Tahaksin juhtida teie tähelepanu ka programmikoodi täitmise eripärale Flashis. Kui liigute läbi mõne objekti atribuudi või dünaamilise välja väärtuse, ei näe te seda omadust või väärtust selle käivitamisel kiiresti muutumas. Flash käivitab esmalt täielikult kogu skripti ja alles pärast tsükli lõppu joonistab ekraani uuesti ja muudab seda omadust või väärtust. Selle funktsiooni mõistmine on meie jaoks eriti oluline üheksandas õppetunnis programmianimatsiooni õppimisel.

Joonis 12

Iga algoritmi, mida saab kirjutada tsükliga "parameetriga", saab kirjutada ka tsükliga "while". Kuid vastupidine pole tõsi. On probleeme, mida ei saa teiste meetoditega lahendada, kasutades konstruktsiooni "While". Mõelgem sellele probleemile. "On teada, et arvude jada 1, 1/2, 1/3 ... 1/n on lahknev, see tähendab, et selliste arvude summa võib ületada mis tahes ettemääratud arvu A. Leidke n, mille summa seeria on 1 + 1/2 + 1 /3 + … + 1/n suuremaks kui antud arv A. Programmi välimus on näidatud joonisel 12.

Looge üks andmesisestusväli ja nimetage see a.

Looge kaks dünaamilist välja ja pange neile vastavalt nimed n ja s.

Looge vajalik arv staatilisi allkirju “a=”, “n=” jne.

Looge kaks nuppu "arvuta" ja "tühjenda".

Nupu "Arvuta" jaoks lisage järgmine kood:

‘ Kuna tsüklis on vaja kontrollida tingimust s

samas (s

Nupu “Tühjenda” puhul on kood sarnane eelmise ülesande koodiga.

Vaatamata sellele, et teoreetiliselt on iga A jaoks olemas väärtus n, kuid tegelikkuses isegi A=10 korral, n=12367. Suurte A väärtuste korral võib selle probleemi arvutamine võtta minuteid või tunde...

Ülevaatusküsimused:

Mis vahe on tsüklil "parameetriga" ja "while"?

Milline tsükkel on universaalsem?

Mis on "loendur" tsüklis "parameetriga" ja mida tähendab käsk i++?

Kuidas kirjutada programmi, mis teostab astendamise tsüklit kasutades?

Miks programm hangub tsükli "while" käivitamisel? Kuidas seda vältida?

6. Projekt “Flash kalkulaator”

Action Scripti tegevuses nägemiseks tehkem midagi tõeliselt väärtuslikku. Teeme kalkulaatori, välimus on näidatud joonisel 13.

Joonis 13

Projekti eesmärk: luua Interneti jaoks standardne kalkulaator, mis võimaldab sooritada standardseid aritmeetilisi tehteid. Väärtuste sisestamiseks kasutage nii hiire kui ka tavalisi klaviatuuri klahve.

Esiteks looge dünaamiline väljundväli ja andke sellele nimi nagu tekst. Teiseks looge meie kalkulaatori jaoks vajalik arv nuppe. Kolmandaks, hakkame mõtlema.

Meid ootavad kolm probleemi:

Esimene probleem seisneb selles, et esimese numbri tippimisel lisatakse iga number juba sisestatud numbri lõppu ja pärast aritmeetilise tehte kujutisega nupu vajutamist asetatakse järgmine number rea algusesse.

Kui sisestame esimese numbri, näiteks 245, siis vajutame järjest nuppe 2, 4 ja 5. Aga kust kalkulaator teab, et kui vajutasime nuppu 2, on see kakssada, mitte kakskümmend või kaks tuhat? Teisisõnu, kuidas sa tead, millist numbrit esimeses muutujas meeles pidada?

Kolmas probleem on see, et esimese, teise numbri ja ka tulemuse jaoks on vaja kasutada vähemalt kolme muutujat, kuid dünaamiline väli ja selle muutuja nimi on ainult üks!

220" height="52" bgcolor="white" style="vertical-align:top;background: white"> https://pandia.ru/text/78/159/images/image013_35.gif" width="12 "kõrgus="36">

Esimese ülesande lahendamiseks vajame täiendavat muutujat, nimetagem seda stekiks. Selle eesmärk on jälgida praegust tegevust. Kui sisestatakse esimene number, peaks selle väärtus olema näiteks üks. Sel hetkel, kui hakatakse sisestama esimese numbri teist numbrit, peaks muutuja väärtus olema juba näiteks kaks. Sel hetkel, kui hakatakse sisestama teist numbrit, peaks muutuja väärtus olema juba võrdne kolmega. Tulemuse arvutamise ajal peab muutuja stek uuesti võtma väärtuse, mis on võrdne ühega, et saadud tulemus saaks järgmiste toimingute jaoks esimeseks numbriks.

Kõik see tähendab, et me ei saa hakkama ainult ühe võtmeraamiga. Soovitatav on luua uuele kihile võtmeraam ja määrata selles muutuja stek väärtuseks üks. Lisage teise võtmekaadrisse ainult üks käsk Põhitoimingud – Stopp. Teisaldage kalkulaatori kihi sisu, mis sisaldab kõiki nuppe, teise kaadrisse (joonis 14). Nüüd, kui programm käivitub, omandab stek muutuja soovitud väärtuse, video läheb teisele kaadrile ja peatub. Kõik edasised toimingud toimuvad seal.

Joonis 14

Teise ülesande lahendamiseks peab sisendväärtus olema tekst! Kui klõpsate numbril, näiteks 1, lisatakse numbritest koosnevasse tekstistringi veel üks märk

Noh, tingimuslik operaator ja muutuja stek aitavad asja lõpuni viia. allpool

kuvatakse klahvile 1 määratud kood. Kõigi teiste nuppude puhul on kood sarnane.

sees (vabasta, klahvVajuta "1") (

‘ lisaks tavapärasele sisse (väljalaskmisele) on lisatud ka klaviatuuri kasutamise võimalus. Klahvivajutus "1" tähendab, et järgmine kood käivitatakse mitte ainult siis, kui vajutate ekraanil kuvatavat nuppu, vaid ka siis, kui vajutate klaviatuuri klahvi. Selle saavutamiseks vaadake joonist 15.

Kui stek muutuja on võrdne ühega, siis dünaamilise väljundväljaga seotud tekstimuutuja väärtus on võrdne ühega ja muutuja stek on võrdne kahega.

) else if (stek==2) (

‘ Kui stek muutuja on kaks, siis üks ei ole arvu esimene koht, seega lisatakse see paremal asuvale tekstimuutujale

) else if (stek==3) (

Kui muutuja stek on võrdne kolmega, siis üks on teise numbri esimene number

Joonis 15

Kolmanda probleemi saab üsna lihtsalt lahendada. Peame sisestatud numbrid salvestama vahemuutujatesse. Analüüsime aritmeetiliste toiminguklahvidele vastavat programmikoodi, need rakendavad sellele probleemile lahenduse:

sees (vabasta, klahvVajutage "+") (

ja võrdusklahvile vastav programmikood.

sees (vabasta, vajutage klahvi "=") (

tekst = parseFloat(a)+parseFloat(tekst);

) else if (o=="m") (

tekst = parseFloat(a)-parseFloat(tekst);

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

tekst = parseFloat(a)*parseFloat(tekst);

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

tekst = parseFloat(a)/parseFloat(tekst);

Esimeses fragmendis peaks kõik selge olema. Kui vajutada plussklahvi, võtab teine ​​muutuja o väärtuse p (pluss) ja muutuja teksti väärtus salvestatakse ajutisse muutujasse a. Ja kui võrdusklahvi lõpuks vajutatakse, peab arvuti lisama muutujateksti salvestatud väärtuse ja muutuja a. Kuna tekstiväärtused salvestatakse muutujatesse, on vaja kasutada funktsiooni parseFloat(), mis teisendab tekstiavaldise arvuks. Selle kutsumiseks kasutage käsku Functions – parseFloat.

Käivitage projekt, testige seda. See ei tähenda, et saadud kalkulaator oleks täiuslik. Sellel pole standardseid matemaatilisi funktsioone, mitme toimingu järjest sooritamiseks peate alati vajutama võrdset. Kuid saate kõik täiustused ise teha. Õppisime põhilise ära. Looge Macromedia Flashi abil lihtsaid tarkvaratooteid.

Ülevaatusküsimused:

Milliste probleemidega me kalkulaatori loomisel kokku puutusime? Mis on muutuja stek eesmärk? Miks peaks tekstiavaldis salvestama numbriklahvi vajutamisel muutujasse? Mis on funktsiooni parseFloat() eesmärk? Soovitage ideed, kuidas teha mitu aritmeetilist tehtet "järjekorras" ilma "võrdub" klahvi vahepeal vajutamata?

7. Objektorienteeritud programmeerimine.

Kui tunnete programmeerimist sellistes keeltes nagu Pascal või Basic, siis olete ilmselt märganud, et Flashi programmeerimine on väga erinev. Asi on selles, et Action Script on lähedasem mitte protseduurilistele programmeerimiskeeltele, vaid objektorienteeritud keeltele, nagu Visual Basic või Delphi.

Ma ei hakka nende keelte võrdlemisel üksikasjalikult peatuma, eriti kuna Action Script ei ole iseseisev keel, peame teadma põhimõisteid. Palun andke mulle kohe andeks sellise fundamentaalse kontseptsiooni nagu objektorienteeritud programmeerimine (OOP), mis põhineb sellistel rasketel mõistetel nagu kapseldamine ja polümorfism, mõnevõrra lõtv esitus.

OOP põhineb rakendusobjekti mudelil, kus kõik objektid on teatud klassi elemendid (joonis 16). Seega põhineb Flash-rakendus filmil, see koosneb ühest või mitmest stseenist. Laval on graafilised ja raamatukoguobjektid. Stseenil on ka ajaskaala, kus kaadrid asuvad. Võtmekaadritel, klipi sümbolitel ja nuppude sümbolitel võib olla oma tegevusskripti kood.

Tõelistes objektorienteeritud keeltes pääseb igale objektimudeli elemendile juurde programmiliselt. Macromedia Flashis pääsete mõnele neist elementidest programmiliselt juurde, kasutades Action Scripti.

Üldiselt on Flashil võimalus luua objektimuutujaid, kuid see ei kuulu meie valikkursuse raamidesse.

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

Joonis 16

Saate alati vaadata oma konkreetse video objektimudelit, kasutades ujuvat "Video Explorer" paneeli.

Joonis 17 (näitab eelmise projekti objektimudeli fragmenti
Flash-kalkulaator)

Muutuvatel objektidel on omadused, st asjad, mida saab muuta. Näiteks videoklipil on X-koordinaadi omadus; Action Scriptil on meetodid, mille abil saame seda omadust muuta. (ja seeläbi luua tarkvaraanimatsiooni). Sellest lähemalt järgmises peatükis.

Iga programmikoodi kõnega kaasneb mingi sündmus, näiteks ekraanil kuvatava nupu või klaviatuuri klahvi vajutamine.

Ülevaatusküsimused:

Nimetage objektorienteeritud programmeerimiskeeled. Millised elemendid moodustavad Flash-objektimudeli? Milliseid elemente saate programmiliselt muuta? Selgitage mõistete objekt, omadus, meetod, sündmus tähendust. Millistele sündmustele Flash-film reageerib?

8. Omaduste programmiline muutmine.

Videoklipi tüüpi teegi sümbolitel võivad olla redigeeritavad omadused. See tähendab, et saate programmiliselt muuta antud objekti suurust, asukohta või nähtavust. Kuidas seda rakendatakse?

Joonis 17

Joonistage objekt, näiteks ristkülik.

Asetage see teeki ja see peab olema videoklipp;

Ujuval paneelil "Kopeeri" peate määrama selle objekti nime, näiteks zzz (joonis 17).

Valige paneelil "Frame Actions" käsk Operations – Set Property. Sellel käsul on kolm kohandatud välja. Omadus on objekti omadus, mida soovime muuta, näiteks _x (x Position), objekti asukoht piki X-telge Sihtmärk on objekti koopia nimi, antud juhul zzz. Väärtus – millega valitud omadus võrdub; see väli võib sisaldada kindlat arvu või avaldist, kuid igal juhul ärge unustage kontrollida lülitit "Avaldis" (joonis 18).

See on kõik, kui käivitate projekti, näete, et teie ristkülik on liikunud ja nüüd on selle keskpunkti koordinaat võrdne sajaga.

Joonis 18

Täielik muudetavate omaduste komplekt asub aknas "Frame Properties" jaotises Atribuudid ja nende tähenduse leiate kirjandusest. Vaatame peamisi omadusi, millest paljusid vajame hiljem projektis:

Alfa – objekti läbipaistvus, varieerub nullist – täielik läbipaistvus, kuni 100 täielik nähtavus;

Nähtav on väga sarnane omadus, mis tähendab nähtavust. Omandil on ainult kaks väärtust – null (objekt on nähtamatu) ja üks (objekt on täiesti nähtav);

Joonis 19

Kõrgus – objekti kõrgus, mõõdetuna pikslites;

Width – objekti laius, mõõdetuna pikslites;

Rotation – objekti pöörlemine selle keskpunkti suhtes, mõõdetuna kraadides;

X – x koordinaat;

Joonis 20

Y – y koordinaat, ülemise vasaku nurga koordinaat võtab väärtuse, mis on võrdne (0,0);

Xscale – skaala muutmine piki x-telge;

Yscale – skaala muutmine piki y-telge;.

Nagu märkasite, algavad kõik omadused alakriipsuga.

Kuna me peame mitte ainult programmiliselt muutma objekti omadusi, vaid jälgima ka nende praegust väärtust, vajame funktsiooni GetProperty. Käsk kutsutakse välja aknas “Frame Actions” Functions – GetProperty() (joonis 19). Funktsioonil on kaks parameetrit. Sihtmärk – sihtmärk, sõna sihtmärk asemel kirjutatakse objekti sümboli koopia nimi. Omadus – muudetav omadus, sõna omadus asemel võib näiteks kirjutada _x, saades praeguse x koordinaadi. Seda funktsiooni kasutatakse reeglina koos muutuja määramise käsuga või mõne muu käsu sees (joonis 20).

x = getProperty(zzz, _x);

See käsk tähendab, et objekti praegune koordinaat nimega zzz salvestatakse muutujasse x.

Vaatame, kuidas saab projektis atribuutide muutmist kasutada. Loo objekt, mille omadusi saab muuta. Näidisekraan on näidatud joonisel 21.

Joonis 21

Looge objekt ja muutke see videoklipi sümboliks.

Andke selle sümboli koopiale ujuval koopiapaneelil nimi, näiteks "Ob".

Looge nuppude komplekt. Põhimõtteliselt võib nuppude komplekt olla suvaline, projektis kasutatakse nuppe, mis muudavad objekti koordinaate, aga ka objekti mõõtkava ja läbipaistvust.

Lisage järgmine kood nupule, mis liigutab objekti üles:

sees (vabasta, klahvivajuta " ") {

setProperty("Ob", _y,

getProperty(Ob, _y) - 5);

See käsk muudab objekti "Ob" omadust, selle y-koordinaati. Objekti ülespoole liikumiseks arvutatakse selle praegune koordinaat ja sellest lahutatakse 5.

Teistel nuppudel on sarnane kood, mis erineb ainult selle omaduse poolest, mida kavatsete muuta. Võtame teise näite:

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

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

See kood suurendab objekti ulatust. Proportsionaalseks suurendamiseks peate suurendama suurust nii x-teljel kui ka y-teljel. Seetõttu on selles skriptis kaks käsku.

Ülevaatusküsimused:

Millistele teegi sümbolitele pääseb programmiliselt juurde? Kuidas seda korraldada? Milliseid objektide omadusi olete uurinud? Mis on nende tähendus? Mis vahe on käskudel setProperty ja getProperty? Selgitage rea tähendust: setProperty("Ob", _xscale, getProperty(Ob, _xscale) + 5); Kas kujutate ette, kuidas saate muuta teiste objektide, näiteks nuppude omadusi?

9. Kolmekaadrilised tsüklid. Tarkvaraanimatsioon.

Objekti omaduste programmiliselt muutmine võimaldab luua programmilist animatsiooni. Erinevalt tavalisest animatsioonist, mida saab luua Macromedia Flashis, saab tarkvaraanimatsiooni juhtida video edenedes.

Näib, et piisab objekti omaduste, näiteks x-koordinaadi, tsüklilisest muutmisest ja objekt hakkab liikuma, kuid see pole nii. Fakt on see, et Flashis käivitatakse esmalt programmi kood ja alles siis toimub muudatus, ekraan joonistatakse ümber. Seetõttu viiakse objekt kohe alguspunktist lõpp-punkti ja sujuv liikumine ei toimi. Selle vastuolu ületamine seisneb kolmekaadriliste tsüklite kasutamises.

Nende idee on järgmine:

Esimeses võtmekaadris määratakse algkonstandid ja objekti algpositsioon.

Teises võtmekaadris muutub objekti omadus mingi kindlaksmääratud summa võrra.

Kolmas võtmekaader sisaldab ainult ühte käsku teise kaadri juurde minemiseks.

Vaatamata asjaolule, et tsükkel pole selgesõnaliselt määratletud, muutuvad omadused tsükliliselt. Tehes programmilise atribuudi muutmise teises kaadris, muudab arvuti objekti asukohta ja kolmas kaader loob selle protsessi silmuse.

Vaatame, kuidas kolmekaadrilist tsüklit praktikas rakendatakse. Loome video, milles auto liigub lina servast servani, pöörates vastassuunda ja jätkates liikumist lõputult. Kasutajal on võimalus oma liikumiskiirust muuta, seda aeglustades või suurendades. Video välimus, loomulikult ilma liikumiseta, on näidatud joonisel 22. Allpool on antud projekti rakendamise programmikoodi analüüs.

Joonis 22

Looge esimesele kihile auto joonis või importige valmis joonis. Nimetage kiht ümber "auto" ja pikendage võtmeraami kolmanda kaadrini, vajutades kolmandas kaadris klahvi F5.

Teisendage joonis sümboliks, näiteks videoklipiks. Andke selle sümboli koopiale ujuval koopiapaneelil nimi, näiteks "auto".

Looge uus kiht, nimetage see ümber "nupudeks" ja looge sellele kaks nuppu "kiiremini" ja "aeglasemalt".

Looge uuel kihil Actions kolm tühja võtmekaadrit ja vajutage kolm korda klahvi F7.

Lisage esimesse võtmekaadrisse järgmine kood:

setProperty("auto", _x, 50);

Pange tähele, et see kood ei ole lokkis sulgudes ja selle alguses pole sisselülitamist (vabastamist), see tähendab, et see kood viitab konkreetselt raamile, mitte nupule. Selles fragmendis on objekti nimega auto esimesel real omadus _x (koordinaat piki x-telge) seatud väärtusele 50. Järgmisena tutvustatakse kolme muutujat, siin on nende tähendus: dx - ühe liikumise väärtus objekt, samuti liikumissuund (vt allpool), MinX ja MaxX on vastavalt minimaalne ja maksimaalne võimalik objekti koordinaat. Üldiselt saate ilma nende muutujateta hakkama, kuid nende kasutamine muudab projekti silumise palju lihtsamaks. Arvan, et edasise koodi analüüsimisel ilmneb sügavam arusaam.

Lisage teise võtmeraami järgmine kood:

x = getProperty(auto, _x);

Muutuja x salvestab objekti praeguse asukoha.

if(x<=MaxX) {

setProperty("auto", _xscale, -100);

‘ Kahe pesastatud tingimuslause konstruktsioon. Esimene kontrollib dx>0. Kui jah, siis auto liigub paremale. Teine tingimus x<=MaxX проверяет не достиг ли автомобиль максимально возможной координаты. Если это так то изменяется координата x объекта «car». Если второе условие не выполняется, то максимальная координата достигнута, как результат масштаб по координате х изменяется на -100% (автомобиль переворачивается) и единичного перемещение объект изменяется на противоположное.

if (x>=minX) (

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

setProperty("auto", _xscale, 100);

Jällegi kahe pesastatud tingimuslause konstruktsioon. nende eesmärk on eelmistega sarnane.

Lisage kolmandasse võtmekaadrisse järgmine kood:

gotoAndPlay(2);

Kui käivitate projekti praegu, näete, et objekt liigub vasakule ja paremale. Lisame mõne lihtsa koodi, mis suurendab ja vähendab kiirust.

Kiiruse muutmiseks peate suurendama objekti ühikulise liikumise mahtu. "Kiiremini" nupule vastav kood on toodud allpool:

sees (vabasta, klahvivajuta " ") {

Kui üksuse liikumine on positiivne, siis nupu vajutamine suurendab seda liikumist ühe võrra. Pange tähele, et sama toiming toimub ka siis, kui vajutate klaviatuuril paremat nuppu.

Nupule "aeglasem" vastav kood on toodud allpool:

sees (vabasta, klahvivajuta " ") {

Eesmärk on sarnane eelmisele fragmendile. See on kõik. Käivitage projekt, testige seda. Rakendame viimases projektis saadud teadmisi, mis ühendab kaks eelnevat ja loob mängu.

Ülevaatusküsimused:

Miks ei saa tarkvaraanimatsiooni rakendada tavalist "while" tsüklit kasutades? Selgitage iga kaadri eesmärki kolme kaadri tsüklis. Selgitage dx muutuja tähendust kirjeldatud projektis. Miks on programmi koodis rida setProperty ("auto", _xscale, 100); Lisage loodud projektile nupp "Stopp".

10. Projekt “Interaktiivne mäng – Lasketiir”.

Projekti eesmärk: luua interaktiivne laskegalerii mäng. Mänguväljakul segatakse jänest (sihtmärki), keda tuleb tabada liikuva märklaua abil. Löök tuleb sooritada minimaalse arvu sammudega (arvutatud). Ligikaudne ekraanivaade on näidatud joonisel 23.

Selle projekti elluviimiseks peate looma sihtobjekti (antud juhul jänese imporditud joonise). See peaks liikuma samamoodi nagu eelmise projekti auto. Samuti peate looma sihtobjekti ja nuppude komplekti, mis liigutavad seda objekti vasakule-paremale ja üles-alla. Samuti peate looma kuus dünaamilist väljundvälja. Kaks sihtmärgi koordinaatide kuvamiseks, kaks sihtmärgi koordinaatide kuvamiseks, üks tulemuse kuvamiseks ja üks katsete arvu lugemiseks.

Põhimõtteliselt on see sama kolme kaadri tsükkel. Esimeses kaadris määrame esialgsed parameetrid:

z_x = juhuslik (450)+50;

z_y = juhuslik(230) + 50;

pr_x = getProperty(pr, _x);

pr_y = getProperty(pr, _y);

setProperty("z", _x, z_x);

setProperty("z", _y, z_y);

setProperty("buh", _visible, 0);

d – tabamuse täpsus (selle muutuja kohta lähemalt hiljem); h – “jänese” üks liikumissamm; rez – korduste arv, algselt on see muutuja võrdne nulliga; z-x ja z-y on “jänese” algkoordinaadid, need määratakse standardse Random-funktsiooni abil, seda kutsutakse välja kaadritoimingute aknas käsu Objects – Mathematics – Random abil; seejärel seatakse sihtmärgi (objekti “z”) omadused saadud juhuslikele koordinaatidele; ja lõpuks on viimasel real seatud “võtte” nähtavus nulliks, ehk esialgu on objekt “buh” nähtamatu.

Joonis 23

Ja allpool on teisele võtmeraamile vastav kood:

z_x = getProperty(z, _x);

if (z_x>=max_x) (

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

if (z_x<=min_x) {

setProperty("z", _xscale, 50);

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

kõik kordab täpselt eelmise ülesande teise kaadri sarnast koodi.

Kolmas kaader sisaldab ainult ühte käsku:

gotoAndPlay(2);

see võimaldab teil sihtmärgi liikumist "silmustada".

Lisage kood nuppudele, mis liigutavad sihtmärki vasakule ja paremale, üles ja alla. Siin on näiteks kood sihtmärgi paremale liigutamiseks:

sees (vabasta, klahvivajuta " ") {

pr_x = getProperty(pr, _x);

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

pr_x = getProperty(pr, _x);

selles fragmendis korratakse käsku pr_x = getProperty (pr, _x) kaks korda, see ei ole viga. Lihtsalt esimesel korral on seda käsku vaja sihtmärgi asukoha määramiseks enne liikumist ja teisel korral vajame sihtmärgi uut koordinaati, et seda tulistamisel sihtmärgi koordinaadiga võrrelda.

Jääb vaid lisada tulekahju nupu kood. See on esitatud allpool:

sees (vabasta, klahvivajuta " ") {

Olenemata löögi efektiivsusest, suureneb muutuja rez ühe võrra.

setProperty("buh", _x, pr_x);

setProperty("buh", _y, pr_y);

setProperty("buh", _visible, 1);

"Lasku simuleeriv sümbol liigub koordinaatidele, kus sihtmärk parasjagu asub ja selle nähtavus muutub võrdseks ühega.

tellTarget("buh") (

gotoAndPlay(2);

Projektis on "võte" klipp, milles kuvatakse punane ring. Et seda pidevalt ei juhtuks, kasutatakse klipi esimeses ja viimases kaadris käsku stop(). Käsk TellTarget ütleb arvutile, et järgmised käsklused lokkis nooltel kehtivad ainult "buh" objektile ja täidetakse selles. Liikudes teisele kaadrile, algab animatsioon klipi "buh" sees.

if (matemaatika abs (pr_x - z_x)

text = "Täpselt sihile!";

‘ Millisel juhul peaksime eeldama, et tabasime sihtmärki – kui sihtmärgi ja sihtmärgi koordinaatide erinevus on väiksem kui tabamuse täpsus (muutuja d esimeses kaadris). Asi on selles, et mõlemad tingimused on x- ja y-koordinaatide jaoks üheaegselt täidetud, seega kasutatakse loogilist konnektiivi JA (vt õppetund 4). Ja lõpuks peame võrdlema koordinaatide erinevuse moodulit, selleks kasutatakse standardset matemaatilist funktsiooni Math. abs(). Kui kõik tingimused on täidetud, omandab dünaamiline väli "tekst" väärtuse "Täpselt sihtmärgil!" ja video peatub.

text = "minevik!";

See on kõik. Projekt töötab, sihtmärk jookseb meist eemale ja tekstiväljad jälgivad selle asukohta. Sihtmärk liigub üle põllu ja tulemused kuvatakse ekraanil. Võite ennast õnnitleda, oleme jõudnud lõpuni.

Ülevaatusküsimused:

Milliseid tehnoloogiaid selles projektis kasutati? Mis on käsu tellTarget("buh") eesmärk? Mida tuleb programmis muuta, et jänese liikumisvälja 100 piksli võrra vähendada? Miks peaksime sihtkoordinaadi ja sihtkoordinaadi võrdlemisel arvutama koordinaadiandmete moodulit? Kuidas seda Flashis rakendatakse? Pakkuge võimalusi, mis muudavad mängu keerulisemaks, soovitage nende rakendamise viise.

Me puudutasime just Flashis programmeerimist. Sellised probleemid nagu massiividega töötamine jäid puutumata; me ei töötanud heli ega keritavate tekstiväljadega; me ei töötanud objektimuutujatega. Flashis on veel palju saladusi ja üllatusi, nende uurimine on omaette teema. Ehk leiab autor aega nende huvitavate aspektide kirjeldamiseks.

Kui teid huvitasid need esimesed õppetunnid, kui teid huvitasid Flashis programmeerimine, siis need paar õhtut, mil ma kirjeldasin esimesi samme imelises Macromedia Flash programmis, ei olnud asjatud. Võite minuga ühendust võtta e-posti teel, avaldada oma soove ja kommentaare, esitada küsimusi, kuid igal juhul tänan teid selle teksti lugemise eest.

Saamise eest. exe-faili, peate Macromedia Flash programmis looma Flash-filmi, avaldama selle (menüü fail – väljaanne). Selle tulemusena on teil fail laiendiga . swf, saate seda vaadata kas programmi Flash Player abil (installeeritakse automaatselt Macromedia Flashi installimisel. Avage ilmuv fail, valige menüü fail – projektori loomine, määra oma nimi. exe faili.

Hoolimata asjaolust, et näete ristkülikut, nagu pildil, on see ääris; tippimisel jääb see alles, kuid videos endas pole see nähtav.

Tõenäoliselt, kui proovite teksti sisestada vene tähtedega, ilmub teie ekraanile "abrakadabra". Selle põhjuseks on asjaolu, et Flash-programmi vaikefont on Times New Roman, mis ei sisalda kirillitsa märkide kirjeldust. Seetõttu installige enne tippimist kirillitsat toetav font, näiteks Times New Roman Cyr või Arial Cyr.

Kui loete selle juhendi elektroonilist versiooni, saate selle fragmendi kopeerida ja seejärel lõikepuhvri kaudu raami tegevuse aknasse kleepida.

Macromedia Flashi neljandas versioonis kehtestati 20 000 korduse limiit; kui proovisite sooritada suuremat arvu tsükleid, lõpetas arvuti koodi täitmise, et vältida külmumist. Alates viiendast versioonist on piirang eemaldatud, arvuti kuvab vaid teate, et programm aeglustub ja annab võimaluse programm ise lõpetada.

Uue võtmekaadri lisamiseks klõpsake tegevuskihis kaadril nr 2 ja vajutage klahvi F7. Flash loob uue tühja võtmekaadri.

Pildi importimiseks vali käsk File – Import from other formats. Olge ettevaatlik, kui teie määratud kaust sisaldab näiteks sama nimega faile. auto1? car2 jne, siis pakub arvuti need korraga importida. Kui impordite vektorjoonise, jõuab see lõuendile rühmitatud objektide kogumina. Ärge unustage seda rühmitada üheks tervikuks. Kui impordite bitmapi, paigutatakse see automaatselt teeki ja me näeme laval selle koopiat.