Az alkalmazásfejlesztés, fordítás Actionscript elemei, a Macromedia Flash rendszer 1. Az alkalmazásfejlesztés lépései 1. A feladat megfogalmazása és elemzése (ez a legnehezebb feladat) 2. A matematikai modell kialakítása. Milyen módszert alkalmazzunk, milyen részekre lehet a feladatot bontani? 3. Az adatstruktúra kialakítása. Milyen adatokra van szükség a program futtatásához? 4. A program eredményközlése. Meg kell tervezni, hogy a program a legjobban kiértékelhető formában adja vissza az eredményt. 5. A program folyamatábrájának elkészítése. (eddig a részig a lépések nyelvfüggetlenek) 6. A program megírása, kódolás. 7. A program tesztelése, hibakeresés, futtatási eredmények kiértékelése. 8. A program dokumentálása 2. A fordítás lépései, futtatás, futtató környezet 1
Futtató rendszer: A felhasználói programok egy modulja a futtató rendszer (Run Time System), ez a tárgymodulok könyvtárban van, ez egy tárgymodul, amelyet a magasszintű nyelvről készített tárgykódhoz csatol hozzá a kapcsolatszerkesztő (Linkage Editor). A futtató rendszer tartalmazza mindazon szolgáltatások logikáját, amelyek a legtöbb programban előfordulnak (pl. programhibák kezelése, a program számára fenntartott memóriaterület menedzselését végzi, paraméterátadás (név és szöveg szerinti)). 3. Egy Actionscript program felépítése, szerkezete Az Actionscript lehetőséget ad objektumorientált (lásd objektumorientált fejezet) és eljárásorientált (a felszín alatt továbbra is objektumokkal dolgozunk) programozásra is (a továbbiakban az eljárásorientált részt nézzük). A Flash mozi felépítése: o _global: a global egy rendszerjellemző, ami tartalmazza a Flash mozi elemeit. Minden, amit a flash moziban elhelyezünk, az a global-on belül fog elhelyezkedni. Használatát lásd a változók hatáskörénél (3. lecke) o _leveln : a flash moziban vannak szintek, ezekre a szintekre különböző mozikat tölthetünk be. A _leveln-nel tudjuk elérni az N. szint _root timeline-ját. Alapértelmezésben a _level0-ra töltődik be az animáció, itt állítódik be a framerate, a háttérszín, és egyéb tulajdonságok. A szintekre való betöltés a loadmovienum( swf fájl, szint) utasítással tehető meg. o _root: annak a szintnek a fő idősíkja, amelyen az adott script van, ahonnan hivatkozunk a _root-ra o _parent o this Az Actionscriptben nincs különválasztva a deklarációs és a programrész. Bárhol deklarálhatunk új változókat. (nem úgy mint Pascal-ban) Fordítási direktívák var {változók deklarálása} és utasítások; function függvénynév(paraméterek):visszatérési érték { változódeklarációk és utasítások } function var {változók deklarálása} és utasítások; Fordítási direktívák o A compiler-nek adhatunk velük utasításokat, vezérelhetjük a fordítás menetét o A direktívákat nem szabad ;-vel zárni o #initclip : inicializáló blokk kezdetét azonosítja, a moziklipek esetén ezek hajtódnak végre előszőr (megelőzik az első frame action-jának a végrehajtását is) 2
o #endinitclip : az inicializáló blokkot zárja o #include filename.as : az Actionscript kódot külön as kiterjesztésű fájlban is elhelyezhetjük, amit az #include fordítási direktívával kell az fla fájlba illeszteni A deklarált változók a velük azonos (vagy alsóbb) szintekre nézve globálisak (a változók hatáskörét bővebben lásd. a 3_ora.pdf állományban) A nyelv részletes lehetőségeiről az objektum-orientált programozás esetén lesz szó!!!!! 4. Az Actionscript nyelv elemei A nyelv jelkészlete: Egy Actionscript programot a Unicode karakterkészlet elemeiből építhetünk fel. Az angol ABC betűi: A..Z és a..z Decimális számjegyek: 0..9 Hexadecimális számjegyek: 0..9, A..F és a..f (hexadecimális számot 0x kezdettel kell megadni) Egyéb speciális jelek: + - * / =., : ; _ ^ # < > [ ] ( ) { } Actionscript-ben bizonyos karakterpárok speciális jelentést hordoznak: ++ -- += <= >=!= stb. Az előbbi speciális szimbólumok esetén kötött a karakterek sorrendje. Foglalt szavak: A foglalt szavak az Actionscript utasításaiban és deklarációiban szereplő kulcsszavak Ezek: break, case, class, continue, default, delete, do..while, else, extends, for..in, function, get, implements, if, import, interface, private, public, return, set, static, super, switch, throw, try..catch, var, while, with A Flash Player 7.0-tól kezdve az Actionscript megkülönbözteti a kis és nagybetűket, tehát a myvar és a myvar két különböző változó. A program utasításai: Az utasításokat ; -vel zárjuk, kivételt képeznek a fordítási direktívák, ezek után nem kell semmit rakni. Egy sorba több utasítást is tehetünk Azonosítók: A létrehozott elemeknek (változó, függvény, osztály, interface, stb.) nevet kell adni, hogy hivatkozni tudjunk rájuk A névnek egyedinek kell lennie, nem lehet foglalt szó Betűvel vagy _ jellel kell kezdődnie, és betűvel, számmal vagy aláhúzás jellel folytatódhat, nem tartalmazhat szóközt Számok: Egész és valós számokat használhatunk Számokat megadhatunk oktális (8-as) és hexadecimális (16-os) számrendszerben is: o Oktális esetén a számot 0-val kezdjük, pl. var n:number=011; //ez 9 o Hexadecimális esetén a számot 0x-vel kezdjük var n:number=0x11; //ez 17 Valós számokat tizedes törtként (tizedespontot használunk) és hatványkitevős alakban is meg lehet adni (pl. -1.34E2) 3
Nevesített konstansok: Olyan programozási eszköz, melynek 3 komponense van: neve, típusa, értéke Az Actionscript-ben vannak beépített konstansok: o false, Infinity, -Infinity, NaN, newline, null, true, undefined o Az egyes osztályoknak is vannak konstansai, pl. Math vagy Key osztályok A programozó Actionscript-ben csak osztály segítségével tud létrehozni saját konstanst, amit célszerű statikus adattagként felvenni az osztályba. Előnyei: o A név többet mond mint az érték o Ha az érték módosul csak egy helyen kell átírni o A fordító nem foglal helyet a memóriában, csak a fordítás során használja őket Szövegek (sztringek): Megadásuk egyszeres vagy kétszeres idézőjelek között (kétszeres idézőjeleket szoktak általában használni). Pl.: Actionscript A sztring hosszán az idézőjelek között lévő karakterek számát értjük. Lehetőség van a sztringben vezérlőkarakterek megadására is. o \b backspace (ASCII 8) o \n új sor karakter (ASCII 10) o \r kocsivissza (ASCII 13) o \t tab karakter (ASCII 9) o \ egyszeres idézőjel o \ kétszeres idézőjel o Stb., lásd. Actionscript help Kifejezések: A kifejezés operátorok, operandusok és kerek zárójelek sorozatából épül fel. Egy adott ponton létező értékekből egy új értéket állítunk elő. Két komponense van: értéke, típusa Operandus: a kifejezésekben szereplő változók, konstansok, függvényhívások Operátorok: megkülönböztetünk egyoperandusú (unáris, pl. ++, --, ), kétoperandusú (bináris, pl. +,-, *, /, %), és háromoperandusú operátort (?:, lásd később) Megjegyzések: Actionscriptben 2 lehetőség van megjegyzés elhelyezésére: 1. /* többsoros megjegyzés */ 2. // egysoros megjegyzés 5. Alapvető Actionscript timeline utasítások 4
gotoandplay, gotoandstop, play, stop, nextframe, prevframe (előbbi utasítások a MovieClip osztályból valók) A konzolba való kiíratáshoz használjuk a trace( szöveg ) függvényt 6. Az első Actionscript program 1. Készíts flash mozit, amely egy autót az előre hátra gombra kattintva mozgat a Stage két oldala között. (először Motion Tween segítségével) 2. Oldjuk meg az előző feladatot a Motion Tween nélkül (a kocsi x pozíciójának változtatásával). Figyelj arra, hogy a kocsi ne hagyja el a Stage-et! Feladatok: 1. Egy Ax-B=0 alakú egyenletet oldjunk meg, ahol A,B értékét meg kell adni. 2. Kérjük be egy téglatest 3 élhosszát, majd számítsuk ki a térfogatát. 3. Kérjük be egy gömb sugarát, és számítsuk ki a felszínét (A=4*r*r*π). (A Pi konstansra a Math.PI vel hivatkozhatunk, a Math osztály egyéb tulajdonságait és metódusait lásd. később) 4. Kérjünk be egy egész számot, írjuk ki a 3-mal való osztási maradékát. 5. Kérjük be a képernyő egy pontjának x és y koordinátáját, majd egy szöveget, és az adott szöveget írjuk ki a képernyő x, y koordinátájú pontjára. 5