Hirdetés

Alkalmazásfejlesztés badára: Flash tartalmak kezelése

A mai bejegyzésben Flash tartalmakat ágyazunk be egy egyszerű Form based alkalmazásba. Ehhez a bada egy saját beépített vezérlőt kínál, amely az Osp::Ui::Controls::Flash névre hallgat. A példaalkalmazás egy lejátszóprogram lesz, amely egy, a Flash fájlt tartalmazó panelből és három gombból fog állni, utóbbiakkal vezérelhetjük majd a lejátszást. A vezérlő egyébként kizárólag .swf kiterjesztésű erőforrásokat eszik meg, a többi elterjedtebb formátumot (mint például az .flv és az .fla kiterjesztésű fájlok) nem képes megemészteni, ezekkel próbálva invalid argument hibával száll el a programunk.

A vezérlőt a badában de facto szabványként működő kétfázisú konstruktor segítségével példányosíthatjuk. A Construct() függvénye három bemenőt vár. Az első paraméter egy Osp::Graphics::Rectangle, amellyel a pozíciót és a méretet adhatjuk meg, a második pedig az úgynevezett FlashStyle (a típusa Osp::Ui::Controls:FlashStyle). Utóbbi azt határozza meg, hogy a beágyazott tartalom lejátszható legyen fókusz nélkül is, ennek megfelelően két lehetőségünk van. A FLASH_STYLE_NORMAL választása esetén nekünk manuálisan kell bekapcsolnunk a vezérlő fókuszát (SetFocus() függvény), a FLASH_STYLE_PLAy_WITHOUT_FOCUS esetén pedig erre nincsen szükség. Visszatérve a Construct() metódus bemenő paramétereire, a harmadik ilyen egy String, amely magára a .swf kiterjesztésű fájlra mutat, ezeket érdemes a /Res mappában tárolni.

Mint már említettem, a példaprogram három gombot tartalmaz, amellyel elindíthatjuk, megállíthatjuk, valamint pause üzemmódba kapcsolhatjuk a videót. Ez igen egyszerű elven működik: az egyes gombok úgynevezett eseményeket küldenek a SendUserEvent() függvénnyel, amelyeket az alkalmazás az OnUserEventReceivedN() metódusban kezel le.

Az egyes események bekövetkezésekor a nekik mefelelő függvények hívódnak meg, ilyen a Flash osztály Play(), Stop(), Pause() és Resume() függvényei. A vezérlő további funkciókat is kínál, például egy Slider segítségével nagyon egyszerűen beépíthetünk egy hangerőszabályozót is a SetVolume() függvény segítségével, esetleg az ismétlést is bekapcsolhatjuk (SetRepeatMode()). Ezek mellett még több további lehetőségünk is van a Flash tartalmakkal kapcsolatos interakcióra, ennek ezen az oldalon érdemes utánanézni.

A példakód ismét letölthető a Mobilarénás SVN-ből, a projekt a fantáziadús Fless névre hallgat.

dr. Kind

Azóta történt

Előzmények