A Lingo programozási nyelv

Bevezetés

Bevezetés

A Lingo a Macromedia Director multimédia szerzői rendszer szkriptnyelve, utasításkészlete ezért elsősorban specifikusan a multimédiakészítés támogatását célozza. Imperatív, procedurális jellegű nyelv, az eljárások és függvények paraméterezhetők, eszközként használhatók változók, léteznek az alapvető típusok, stb. Emellett a programozó használhat pl. bizonyos, az OOP-re emlékeztető eszközöket is, bár az objektumorientált nyelvek eszközeihez a Lingo eszközeit maximum hasonlítani lehet, egyenértékűnek tekinteni azokat semmiképpen sem.

A Lingo bemutatásához érdemes először tisztázni néhány, a Director terminológiájában előforduló kifejezést.

A Macromedia Director a készített multimédiában felhasznált képi, hangi, szöveges stb. médiaelemeket szereplőnek (cast member) nevezi, a szereplőket a szereposztásba (cast) kell importálnunk, vagy oda elkészítenünk a beépített editorokkal, a kész produkciót mozinak (movie) nevezzük. A mozi nem más, mint a szereplők megjelenése a színpadon (stage). Azt, hogy melyik szereplőnek mikor kell megjelennie és meddig kell tartózkodnia a színpadon, azt a forgatókönyvben (score) tudjuk meghatározni. A score egy időszalagként fogható fel, melyen egy lejátszófej jelzi, hogy a mozi épp hányadik időegységet (frame) játssza le. A lejátszófej sebessége a mozin belül bármikor, bármennyiszer módosítható. A színpadon mindig az a szereplő vagy azok a szereplők látszanak, akik a score-ban az adott frame-en épp el vannak helyezve. A score-ben egymás alatt 1000-nél több sor (csatorna, channel) van fenntartva a szereplők számára és a score elvileg végtelen hosszú. Pontos adatokat sajnos nem közöl a manual, mindenesetre az biztos, hogy a szereplők számára fenntartott helyek korlátai csak elvi korlátok, hiszen egy channelen nem feltétlenül csak egy szereplő kaphat helyet. Megjegyzendő, hogy a score-ban elhelyezett – azaz a képernyőn megjelenő – szereplőket a Director sprite-nak nevezi. A sprite-okat a score-ban egymás alatti csatornákon helyezhetjük el, az a sprite van legfelül a képernyőn, vagyis azt nem takarja egyetlen másik sem, amelyik a csatornák közül a legmagasabb sorszámún van elhelyezve.

Fontos tudnunk, hogy a score használata nem feltétlenül szükséges, mivel a szereplők Lingo szkriptekkel is vezérelhetők. Gyakorlati tapasztalatom alapján elmondhatom, hogy ha a Directort arra használjuk, amire leginkább alkalmas (t. i. multimédiakészítésre), akkor célszerű mind a forgatókönyvet, mind pedig Lingo szkripteket segítségül hívni.

A mozikban négyféle szkriptet használhatunk, ezek a következők: viselkedés (behavior), mozi szkript (movie script), szereplőszkript (cast member script) és szülőszkript (parent script), ez utóbbi hasonlítható az OOP-k osztályához.

A behavior-ok számára a forgatókönyvben fenntartanak egy külön sort, ezt szkript csatornának (script channel) hívják. Az itt elhelyezett szkriptek a szereposztásban önálló szereplőkként vannak definiálva és akkor kapnak vezérlést, ha a lejátszófej arra a frame-re ugrik, ahol ezek el vannak helyezve. Valójában ez így nem egészen pontos, mivel az ilyen szkriptekben lehetőségünk van többféle eseménykezelőt (handler) is használni, így pl. a behaviorban értelmezhető az on exitFrame, csakúgy, mint az on enterFrame esemény, az előbbi akkor kap vezérlést, amikor a lejátszófej épp elhagyja a frame-et (de még nem lépett a következőre), utóbbi akkor, amikor a lejátszófej éppen belépett az adott képkockára.

Behavior rendelhető egy a scorban szereplő sprite-hoz is.

A cast member scripteket más szereplőkhöz – pl. állóképekhez – csatolhatjuk. Ezek a szkriptek akkor kapnakhatnak vezérlést, amikor az adott szereplő a színpadon van. Cast member scripteket rendelhetünk nyomógombokhoz, ilyen pl. a gyakran használt on mouseUp esemény, ami akkor következik be, ha az adott szereplő fölött állva az egérrel a lenyomott balgombot felengedjük, magyarul befejezzük a kattintást.

A moziszkriptek szintén önálló szereplők a szereposztásban, de nem kell őket elhelyezni sehol a forgatókönyvben, tehát nem jelennek meg sprite-ként a score-ban. Az ilyen szkriptben megírt kezelők felelnek pl. az egér- és billentyűparancsokért, és a moziszkriptben elhelyezett kezelők bármely másik szkriptből hívhatók mindaddig, amíg a mozi fut. Moziszkriptben helyezhetők el pl. olyan eseménykezelők is, melyek a mozi indulásakor, annak megállításakor, illetve véget érésekor aktiválódnak.

A Director compilert használ. Fordításkor – a Javához hasonlóan – köztes kód készül, melyet aztán a különböző platformokra készült virtuális gépek futtatnak. Ezek a virtual machineek a böngészőkhöz készült Shockwave plugin-ekban találhatók, vagy ha a moziból futtatható exé-t készítünk (ún. projectort), akkor abban.