Hirdetés

Alkalmazásfejlesztés badára: Kommunikáció a Flash objektumokkal

Az előző két bejegyzésben megnéztük, hogyan ágyazhatunk be Flash tartalmakat az alkalmazásunkba, ezt helyi és távoli swf fájlokkal egyaránt kipróbáltuk. Elöljáróban megjegyezném, hogy nem vagyok egy Flash guru (értsd: nem értek a Flash programozáshoz), de ha már elkezdtük a témát, utánanéztem pár dolognak; sajnos megfelelő tapasztalat és IDE nélkül nem tudtam mindent kipróbálni. Szóval a mai bejegyzésben az Osp::Ui::Controls::Flash vezérlőben futó tartalom és az alkalmazás kommunikációjáról lesz szó. Bár az előző bejegyzésekben már láttuk, hogyan vezérelhetjük a Flash erőforrások lejátszását (play, stop, resume és pause funkciók), ezek azonban magának a vezérlőnek szóltak, nem a benne futó .swf kiterjesztésű fájlnak.

Némi háttér-információ szükséges a jelenség megértéséhez. A bada kizárólag az .swf kiterjesztésű tartalmakat eszi meg, amelyeket az Adobe által karban tartott ActionScript nyelvvel lehet programozni. Bár a nyelvnek a legfrissebb verziója a 3.0, a bada csak a 2.0-át támogatja. Tehát, az ActionScript több API-t is ajánl a flash-t beágíazó külső konténereknek, ezek az adott ActionScript verziótól (amely jelen esetben ugye a 2.0) és a lejátszó verziójától függenek; utóbbi a bada alatt a Flash Lite 3.1.

Szóval jelen esetben két API-t kapunk:

  • fscommand2 API: konténer → Flash irányú üzenetek kezelésére
  • ExtendedEvents API: Flash → konténer irányú üzenetek kezelésére
Az fscommand2 API főbb függvényei
GetBatteryLevel az akkumulátor töltöttségi szintje
GetNetworkConnectionName a hálózati kapcsolat neve
GetNetworkConnectionStatus a hálózati kapcsolat állapota
GetNetworkGeneration a hálózat generációja (2G, 3G)
GetNetworkName a hálózat neve
GetNetworkStatus a hálózat állapota
GetSignalLevel a jelerősség mértéke
GetVolumeLevel a hangerő
SetInputTextType a beviteli mód megváltoztatása
StartVibrate rezgés on
StopVibrate rezgés off

A kódot a Flash IDE-n keresztül adhatjuk hozzá az objektumokhoz, ez az fscommand2 és az ExtendedEvents függvényeire egyaránt igaz. Ha kiegészítettük a Flash objektumunkat a megfelelő sorokkal, már csak ki kell exportálnunk azt a bada által támogatott formátumban, ez a már tárgyalt ActionScript 2.0 és Flash Lite 3.1 kombót jelenti.

Persze az üzeneteket a badás alkalmazásunkban is le kell kezelnünk, ehhez implementálnunk kell az Osp::Ui::IFlashEventListener függvényt, amely, mint a neve is mutatja, ezen események feldolgozására szolgál. Itt két függvényünk lesz:

  • OnFlashDataReceived(const Osp::Ui::Control& source, const Osp::Base::Collection::IList& paramList)
  • OnFlashDataReturned(const Osp::Ui::Control& source, const Osp::Base::Collection::IList& paramList)

A függvények nevei és paraméterei magukért beszélnek, a hivatalos bada fejlesztői oldalon pedig egy példakódot és egy hozzá tartozó angol nyelvű leírást is találhat az, akit bővebben érdekel a dolog.

dr. Kind

Azóta történt

Előzmények