Luues interaktiivset rakendust on vajalik, et Flashi objekte saaks animeerida ka vastavalt kasutaja soovidele. Selles harjutusülesandes õpimegi, kuidas sümbolit laval animeerida ActionScripti vahenditega. Lisaks uurime, mil viisil on võimalik suhelda Flash Playeri või muu projektoriga.
Õpime:
Näidetest failid anim.fla, anim.swf
Joonistame animeerimiseks ringi ning muudame selle MovieClip-sümboliks nimega ring.
Lohistame vastloodud sümboli lavale (kui see seal juba pole) ning anname sellele instantsinime Ring. Jälgida tuleb, et loodud sümboli keskkoht MovieClip-sümboli sees oleks ikka tõepoolest keskel, selle järgi liigutatakse sümbolit laval (vt joonis 3.1).
![]() |
Joonis 3.1 – Sümboli keskkoht on paigutatud MovieClip'i keskele |
Loome uue kihi, millele hakkame ActionScripti kirjutama.
Skript:
var Serv:Number = Stage.height - (ring._height / 2);
Muutuja Serv asemel võiksime if-tingimuses kasutada ka lihtsalt parameetrit Stage.height, kuid sellisel juhul lõpetatakse sümboli liigutamine alles siis, kui selle keskkoht puutub kokku lava alumise servaga. Kui soovime, et liikumine lõppeks siis, kui MovieClip'i serv on jõudnud lava servani, peame lava pikkusest lahutama pool MovieClip'i pikkust (s.o. keskkohast servani, vt joonis 3.2).
![]() |
Joonis 3.2 – Stage.height ja muutuja Serv kasutamise erinevus meie näites |
Meie harjutusülesandes on kasutusel MovieClip'i sündmuseohjur onEnterFrame(), kuid sarnaselt saab reageerida ka näiteks kasutaja nupuvajutusele. Sündmus onEnterFrame() kutsutakse välja kaadrite arv kordi sekundis (meie näites 12). Niimoodi on lihtne arvutada, et esimeses if-tingimuse pooles liigutatakse ringi sekundis 24 (12 * 2) piksli võrra allapoole. Kui ringi serv on jõudnud lava alumise ääreni, vähendatakse ringi kõrgust, samas seda suuremaks skaleerides ning lavalt minema nihutades. Niimoodi saavutatakse nn. "laialivalgumise" efekt.
onEnterFrame = function(){ if(ring._y < Serv){ ring._y += 2; }else{ if(ring._height > 0){ ring._height -= 2; ring._xscale += 2; ring._y += 1; } } }
_x | x-koordinaadi muutus pikslites |
_y | y-koordinaadi muutus pikslites |
_width | Objekti laius pikslites |
_height | Objekti pikkus pikslites |
_xscale | Skaleerimine x-telge pidi protsentides |
_yscale | Skaleerimine y-telge pidi protsentides |
_alpha | Objekti läbipaistvus protsentides |
_visible | Objekt nähtav või nähtamatu (true/false) |
_rotation | Objekti pööramine kraadides |
_xmouse _ymouse | Hiirekursori asukoht konkreetse objekti koordinaatväljal (coordinate space), kasutatakse peamiselt nn rollover jm efektide loomisel. Need parameetrid on kirjutuskaitstud (read-only)! |
Koodis esinevad
ring._height -= 2; ring._xscale += 2;ei ole tegelikult muud kui antud väärtusele juurde või maha arvutamine, pikemalt välja kirjutades:
ring._height = ring._height + 2; ring._xscale = ring._xscale - 2;
Kokkuvõtlikult:
+= | suurendamine väärtuse võrra |
-= | vähendamine väärtuse võrra |
*= | suurendamine väärtus korda |
/= | jagamine väärtusega |
Lisame meie animatsioonile omaduse, mis võimaldab selle laval asuvale nupule vajutades sulgeda. Loome lihtsa nupu Nupp ning lohistame selle lavale, andes instantsile nimeks exitNupp.
fscommand() võimaldab Flash-failil suhelda Flash Playeri või selle peremeesprogrammiga (host), nagu näiteks veebibrauser.
Funktsioon kirjeldatakse kujul fscommand("käsk", "parameeter").
Atribuut | Parameeter | Selgitus |
---|---|---|
quit | (puudub) | Sulgeb projektori (Flash Player). |
fullscreen | true või false | Määrates true, läheb Flash Player täisekraanvaatesse, false naaseb normaalvaatesse. |
allowscale | true või false | Määrates false seadistab Flash Playeri SWF-faili alati originaalsuuruses näitama ning keelab selle skaleerimise. true skaleerib animatsiooni 100%-le Playeri suurusest. |
showmenu | true või false | Määrates true võimaldakse Playeri täiskontektsimenüü. false peidab kõik menüüelemendi, välja arvatud seadistused (Settings) ning info (About Flash Player). |
exec | failiteekond | Käivitab failiteekonnaga etteantud programmi. Failiteekond võib sisaldada vaid numbreid 0-9, tähti A-Z, a-z (mitte täpitähti), punkti (.) ning allkriipsu ( _ ). |
trapallkeys true või false Määrates true saadab Flash kõik klahvisündmused onClipEvent(keyDown/keyUp) ohjurile Flash Playeris.
Tähelepanuks:
Rakenduse testimiseks tuleb fail publitseerida. |