HTML

Calmarius

Ebbe írom, ha van valami megosztani valóm. A programjaim a weboldalamon vannak: http://calmarius.atw.hu

Friss topikok

Linkblog

Flash programozás nyíltforrású eszközökkel

2010.11.05. 14:57 Calmarius

Bevezetés

 

Ez a bejegyzés azoknak szól, akik Flashet akarnak programozni, de nem akarnak vagy nem tudnak beszerezni egy Adobe Flash-et, vagy egyszerűen azért mert Linuxuk van és arra nem jelent meg. Ez a leírás elsorban a linuxos parancssor + szövegszerkesztő módszert taglalja. A grafikai részekre külön programokat kell majd beszerezni.

Mivel a Flash eléggé széles témakör, ezért még most az elején leszögezem, hogy ez az egész nem arról fog szólni, hogy milyen programok vannak, amelyekkel lehet flash animációkat csinálni ingyen. Hanem inkább arról, hogy hogyan lehet flashet programozni gyakorlatilag csak ActionScript használatával, mindenféle csilivili program nélkül csak a szövegszerkesztő és a parancssort használva. Ez Windows és Mac használóknak szokatlan lehet, de a Linux felhasználók nap, mint nap ezt csinálják. Személy szerint elsőre nekem is szokatlan volt, hogy mindenre a parancssort és a szövegszerkesztőt használjuk, de aztán később rájöttem, hogy mindazt a sok funkciót, amit egy program, pl.: a gcc tud a linux alatt menükbe akarnánk sűríteni akkor a menükkel be lehetne tölteni a képernyőt, és alap, hogy áttekinthetetlen lenne az egész, meg parancsori programot százszor könnyebb csinálni, mint GUI-sat, alapból nem kell azzal törődni, hogy hova helyezzük el a gombokat.

De most térjünk vissza a lényegre. Tehát akkor hogyan is van a flash nyíltforrású cuccokkal?

Előre bocsátom, hogy én is csak most kezdtem igazán foglalkozni a flashes dolgokkal, ezért lehet, hogy most még sok hülyeséget írok, de ha később idetévedek, és valami ökörséget látok majd kijavítom...

Programok, amelyek kellenek

 

swfmill: Ezzel a programmal egyszerűen XML segítségével összepakolhatjuk a képeket és a framekat a swf fájlunkba.

mtasc: Ezzel a programmal az ActionScript2-t lehet belefordítani az előbb összerakott swf fájlunkba.

Flash player debug változata: Ez ugyanolyan, mint a sima flash player, annyi kiegészítéssel, hogy ezzel van módunk arra is, hogy flash programok által generált hibaüzeneteket, illetve az egyéb debugolási megjegyzéseket meg tudjunk tekinteni sokat segít.

Telepítés

 

Windows

Az swfmill és mtasc esetén egy exét kapunk. Azt kell majd használnunk. Ami a flash playert illeti ott a böngészőben kell eltávolítani a plugint, majd feltelepíteni azt a debug plugint, amit a Adobe oláról szedtünk le.

Macintosh

Macintoshom nincs, de valószínűleg ott is hasonló rendszer működhet, mint windowson.

Linux

Az swfmill és az mtasc elérhető a központi repositoryból, érdemes onnét telepíteni. A flash plugin a linuxokban egy rendszer szintű dolog, szóval nem fog működni a böngészőből eltávolítom dolog. Ezért ott a ~/.mozilla/plugins könyvtárba kell berakni majd újra indítani a böngészőt.

Ami közös

Mindhárom esetben a felhasználó profilmappájába csinálni kell egy mm.cfg nevű fájlt, amelyben két sor álljon:

ErrorReportingEnable=1
TraceOutputFileEnable=1

A linuxon a felhasználói könyvtár neve, egyszerűen ~, windowsban, ha jól emlékszem %USERPROFILE% névre hallgat, macintoshon passz.

Ha minden feltelepült a böngésző újraindítása után már debugolhatjuk a flash dolgainkat, készülni fog egy log fájl majd valahol eldugva. Linuxon ez a hely ~/.macromedia/Flash_Player/Logs/flashlog.txt

A többi oprendszeren is hasonló lehet ez a hely.

Hello world program

 

Na most akkor csináljunk egy nagyon egyszerű flash programot.

Először egy XML fájlt kell írnunk az swfmill számára.

<?xml version="1.0" encoding="iso-8859-1" ?>
   
<movie width="800" height="600" framerate="20">
  <background color="#000080"/>
  <frame>
      <library>
         <clip id="rajz" import="rajz.svg"/>     
      </library>
  </frame>
</movie>
Ez eléggé magáért beszél, de azért pár sorban leírom, hogy mit is jelentenek itt a dolgok. Az első sor a XML fejléc, kötelező eleme minden XML fájlnak. A fájl gyökéreleme a movie elem, ebben megadhatjuk, hogy a flash appletünk mekkora is lesz illetve, hogy mekkora frame sebességgel is fog menni. Nem kell igazán aggódnunk a méret miatt, mert ha egy böngészőablakban jelenítjük meg, akkor az átméretezéssel méreteződik majd. Nem próbáltam még ki, de valószínű, hgoy lehet kényszeríteni a méretét, ha az ember tag-ben méretezzük, lényeg, hogy a mérettel nem kell foglalkozni.

A background elem adja meg, hogy milyen lesz az alapértelmezett háttérszín, ennek igazán akkor van értelme, ha a teljes böngészőablakot kitölti majd a flash applet, mert akkor a teljes ablak ki lesz töltve a háttérszínnel. Én egy sötétkék színt választottam.

Elég primitív, 1 frameból álló lesz majd. Ami lényeges nekünk az a <library> tagek között van, itt soroljuk fel azokat a dolgokat, amelyek nekünk kellenek. a képi anyagokhoz a <clip> tagot használjuk a hanganyaghoz pedig a <sound> taget. Az id attribútuma egy egyedi azonosító, ezzel hivatkozunk majd rá az actionscriptből az import meg nyilván a fájl, amit akarunk használni, támogat png-t, jpg-t és svg-t is (részben), hangok közül nem tudom mit támogat egyelőre még nem használtam hangot, de majd egyszer megnézem azt is.

Mentsük el ezt a fájl valamilyen néven, legyen pl.: swflib.xml . Ezután indítsunk egy parancssort, és csináljunk belőle SWF-et. Az swfmill programot használjuk hozzá majd. Tehát írjuk a következő a parancssorba:

swfmill simple swflib.xml helloworld.swfA simple paraméter azt jelenti, hogy egyszerű fordítást akarunk minden extra nélkül. Ezután az xml fájlunk jön majd az swf fájl, amit szeretnénk látni.

Ha minden rendben volt egy swf fájlt már is elő kellene állítani, és már nézhetjük is a böngészőben a nagy kékséget.

És most ideje, hogy egy actionscriptet is írjuk. Nyulfarknyi helloworld script lesz.

class Main
{
    static function main()
    {
        _root.attachMovie("rajz","drawing",_root.getNextHighestDepth(),{_x:200, _y:100});
    }
}
Ez majd csak annyit csinál, hogy kirakja azt a képet, amit korábban SWF-ben az swfmill-lel beleraktunk. Ezt a fájlt mentsünk el Main.as néven (fontos, hogy a classnév megegyezzen fájlnévvel betűről betűre)

Ezután az mtasc programot használva fordítsuk bele a scriptet a SWF-ünkbe.

A parancssorba a következőket kell írni:

mtasc -swf <elérésiút>/helloworld.swf -strict -main -cp <elérésiút> Main.asAz -swf kapcsoló adja meg a módosítandó swf fájlunkat utána abszolút elérési útvonallal kell megadni (linuxon /-jelek windowson \ jelek mac-en azt hiszem : jelekkel választják el az elérési útban a tagokat.), hogy melyik swf-et is akarjuk. (elvileg a relatívat vinnie kellene, de nekem csak az aboszolút volt hajlandó működni.) A -strict kapcsoló a szigorú szintaxisellenőrzést kapcsolja be. Érdemes mindig odaírni, potenciális hibákat kerülhetünk el vele. A -main kapcsoló jelenti azt, hogy a static main függvény lesz a belépési pontja a kódunknak (Nem azért -main a neve, mert a függvényünknek is az, hanem, mert static main függvényt fogja keresni, azzal a névvel kell megadni a belépési pontot). -cp az osztályok elérési utvonalát jelenti ebbe azt az elérési útvonalat kell megadni, ahová a Main.as-t megtettünk, ezután pedig szóközökkel elválasztva szépen felsoroljuk az osztályfájlokat, amelyeket fordítani szeretnénk az esetünkben csak a Main.as van ott. Ha minden rendben volt, nem fog kiírni semmit sem a program. Ha ezután megnyitjuk az SWF fájlunkkat, akkor már ott van az a kép, szóval már írtunk Actionscriptet is. Innentől kezdve a határ a csillagos ég.

Itt van a ActionScript2 leírása: http://flash-reference.icod.de/

 

Jó programozást! :)

 

Ha valamit elszúrtam vagy nem műxik síkítsatok... Még én is kezdő vagyok.

 

 

(Még nincs kész a bejegyzés)

 

Szólj hozzá!

Címkék: flash programozás nyílt forrás számítástechnika actionscript

A bejegyzés trackback címe:

https://calmarius.blog.hu/api/trackback/id/tr462425896

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása