ME 306-2 Szoftverfejlesztés
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
ME 306-2 Szoftverfejlesztés
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
ME 306-2 Szoftverfejlesztés
• •
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
ME 306-2 Szoftverfejlesztés
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
ME 306-2 Szoftverfejlesztés • •
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