Hol tart a Flash technológia?

Hol tart a Flash technológia?

Az Adobe Flash technológiája az utóbbi páréves időszakban látványos fejlődésen ment át, rövid időközökkel jelennek meg a Flash lejátszó újabb változatai, melyek egyre több és jobb szolgáltatást nyújtanak. Az igazi nagy lépés a Flash Player 9-es verziójának és az ActionScript 3.0 programozási nyelvnek 2006-os megjelenése volt, ami a belső működés teljes átalakításával óriási teljesítménynövekedést eredményezett a korábbi változatokhoz képest. Ezt a gyors fejlődési folyamatot az internetes alkalmazások robbanásszerű terjedése inspirálja, illetve a Flash lejátszó régóta tartó sikerén felbuzdult vetélytársak megjelenése (elsősorban a Microsoft Silverlight-ja és a Sun/Oracle JavaFX-e, de ide tartozik részben a Unity, illetve a JavaScript/HTML5/CSS3 is). Hogy piacvezető pozícióját megtarthassa, az Adobe kénytelen újabb és újabb fejlesztéseket folytatni, aminek remélhetőleg a felhasználók lesznek az igazi nyertesei.

Az alábbiakban áttekintünk pár olyan technikai lehetőséget, mely az utóbbi években jelent meg vagy fejlődött tovább jelentősen a Flash lejátszóban. Nem törekszünk a teljességre, főként a kisebb jelentőségű újításokat nem említjük meg, illetve az olyanokat, melyek többnyire amúgy is inkább a Flash alkalmazások fejlesztői, mint azok felhasználói számára érdekesek (például bináris adatok kezelése, mely tetszőleges formátumú adatok és fájlok feldolgozását teszi lehetővé, stb.).

3D grafika

A 3D grafika kezelése régi igény volt a Flash lejátszóval szemben, s noha már a Flash Player 8 (2005) óta megoldható volt ez technikailag (korábban csak előre legyártott képek és videók segítségével lehetett 3D-s grafikát megjeleníteni), valójában csak a 10-es verzió (2008) biztosított beépített 3D-s szolgáltatásokat, bár egyelőre csak korlátozott mértékben (testeket nem, csak síkokat kezel 3D-ben, s hardveres gyorsítás nélkül). A meglévő lehetőségekre támaszkodva számtalan 3D-s megjelenítő motor készült és készül jelenleg is (PaperVision3D, Away3D, Sandy3D, Alternativa3D, stb.), melyek ugyan látványos grafikák és animációk készítését teszik lehetővé, de a grafikus kártyák hardveres gyorsításának kihasználatlansága miatt az elérhető élmény elmaradhat például a hagyományos (nem böngészőben futó) játékprogramokban megszokottól.


Az Alternativa3D motorral készült Flash játék, a Tanki Online

Mivel a felhasználói igény folyamatosan nő, s egyre erősödnek az olyan konkurens technológiák, mint például a kifejezetten a minőségi 3D-re építő Unity, az Adobe is bejelentette a Molehill kódnevű, hardveres gyorsításra épülő, valódi 3D-s megjelenítőtechnológia fejlesztését, melynek demóit már bemutatták, s várhatóan 2011-ben jelenik meg végleges változata a Flash lejátszóban. Összhangban az egységes Flash platform szemléletével a Molehill technológia hozzáférhető lesz nemcsak az asztali számítógépeken futó Flash lejátszóban, hanem a mobil eszközökön is.


Az Adobe új Molehill 3D-megjelenítő technológiájának bemutatóvideója

A Flash Player 10-ben megjelent 3D-s szolgáltatások és a Molehill új lehetőségei párhuzamosan fognak létezni. Az előbbiek elsősorban a grafikusok és animátorok számára biztosítanak gyorsan és egyszerűen kezelhető eszközkészletet, mellyel a Flash animációk készítésénél már megszokott munkafolyamatba illeszthetik be a 3D-s grafika és animáció létrehozását. A Molehill lehetőségei inkább a professzionális programozókat és játékfejlesztőket célozzák meg, akik a Molehill alacsony, hardverközeli szintű eszközeire alapozva felépíthetik saját 3D-s megjelenítő rendszereiket, minél mélyebben kihasználva ezzel a hardverben rejlő képességeket. Ahogy a fenti példavideóból is látszik, a népszerű Flash-alapú 3D-s megjelenítőmotorok is beépítik már meglévő magas szintű API-juk mögé a Molehill új lehetőségeit, így azok számára is hozzáférhető lesz a megnövekedett teljesítmény és minőség, akik nem 3D-s specialisták ugyan, de elég gyakorlott programozók ahhoz, hogy alkalmazzák e megjelenítőmotorok magasabb szintű szolgáltatásait.

A videó- és hanglejátszás hardveres gyorsítása

Ahogy a 3D-nél a hardveres gyorsítás kihasználása jelenti a kulcsszót, úgy a Flash felhasználási területének jelentős részét képező videólejátszásban is fontos szempontot jelent ez. A YouTube és más videómegosztó oldalak népszerűsége elsődleges prioritássá teszi a videók hatékony, zökkenőmentes és minél kisebb teljesítményt igénylő lejátszását. A Flash Player által eredetileg használt szoftveres videódekódolás és -lejátszás főként a kisebb teljesítményű számítógépeken, a netbookokon és mobil eszközökön okozhatott kellemetlenségeket. Noha a hardveres gyorsítás bizonyos szintű használata már a 10-es Flash lejátszóban is megjelent, de ez csak korlátozott körülmények közt volt alkalmazható. A szélesebb körű felhasználás lehetősége a 10.1-es változatban lépett színre, ahol nem csupán a H.264 kódolású videók és hangfájlok dekódolásához használja ki a célhardverek speciális szolgáltatásait a Flash lejátszó, hanem a videókép megjelenítéséhez is képes igénybe venni. Mindez drasztikusan csökkentheti a videólejátszás során igénybe vett CPU-teljesítményt és csökkentheti a fogyasztást (ami mobil eszközöknél nem utolsó szempont). A hardveres gyorsítás kihasználható bármilyen vektoros vagy bittérképes grafikus tartalom megjelenítésekor is, igaz ehhez – a grafikus kártyák működéséhez alkalmazkodva – a fejlesztőknek figyelembe kell venniük bizonyos iránymutatásokat programjaik elkészítésekor.

Szintén a videólejátszáshoz és annak hardveres gyorsításához kapcsolódik a Flash lejátszó tegnap óta elérhető 10.2 változatában megjelenő StageVideo szolgáltatás, mely a jó minőségű videólejátszásra biztosít új és teljesítménykímélő módot. A StageVideo nem váltja ki a korábbi videólejátszási technikákat, hanem kiegészíti azokat. Használata bizonyos körülmények között – a videó és más grafikai elemek kombinálásakor vagy színtranszformáció használatakor – nem lehetséges ugyan (ekkor a hagyományos technikák alkalmazhatók), de az egyszerű videólejátszást, mely a videómegjelenítések nagy részét jelenti, jóval hatékonyabbá teszi. Az itt elérhető példa megtekintéséhez telepíteni kell a Flash Player 10.2-t. Az új lehetőséget bizonyára a videómegosztók is alkalmazni fogják, a YouTube már készített is egy tesztváltozatot lejátszójából, mely kihasználja a StageVideo előnyeit (ehhez is szükséges természetesen a Flash Player 10.2).

Szöveg, mobil, p2p

Fejlett szövegmegjelenítés

A grafikusok és designerek állandó panasza, hogy a papíralapú nyomdai technológiákhoz képest milyen szegényes és nehézkesen használható az online tartalmaknál rendelkezésre álló tipográfiai eszköztár. Elsősorban ennek felszámolását célozta meg az Adobe a Flash lejátszó 10-es verziójában (2008) bevezetett fejlett szövegmegjelenítési szolgáltatásokkal, melyek minél könnyebb használatához 2010-ben hozzáférhetővé tette a Text Layout Framework nevű szövegmegjelenítés-kezelő programkönyvtárat is. Az új szövegmegjelenítő technológia lehetővé teszi a többhasábos tördelést, szövegdobozok összekötését (az egyikből „kifolyó” szöveg „befolyik” a következőbe), megfelelően elkészített fontkészletek esetén a ligatúrák és valódi kiskapitális betűk használatát, az „ugráló” és egyforma magasságú számok közti váltást, többféle szövegigazítási opció beállítását, a szövegközi ábrák tetszőleges helyre való beillesztését. Emellett támogatja a különböző nyelvű és írásrendszerű (latin, cirill, arab, kínai, japán, thai, stb. – összesen több mint 30-féle) szövegek akár egyidejű használatát, nemcsak a szöveg megjelenítését értve ezen, hanem a szövegbevitelt is. E szövegmegjelenítési képességekre épül az Adobe online szövegszerkesztője, a Buzzword is, ami része az Acrobat nevű online irodai alkalmazáscsomagjának, s az Acrobat.com oldalon érhető el.

Mobil eszközök támogatása

A mobil eszközök, okostelefonok, kéziszámítógépek és táblagépek terjedésével párhuzamosan megnőttek az ezeken futó szoftverekkel szembeni igények is. Az Adobe Flash lejátszójának korábban külön változata volt a mobil eszközökön való futtatáshoz (Flash Lite), amely tudásában és teljesítményében is elmaradt az asztali számítógépeken futó verziótól. Ez változott meg a Flash lejátszó 10.1-es verziójának kiadásával 2010-ben. Az új verzió ugyanazokat a szolgáltatásokat és lehetőségeket biztosítja, bármilyen eszközön is futtatnak egy Flash alkalmazást, csupán a hardverek teljesítményének eltérése jelenthet korlátokat. A mobil eszközökre jellemző speciális hardverelemek kihasználására is lehetőség nyílik, mint amilyenek a többpontos érintőképernyők, a gyorsulásmérők vagy a beépített GPS-eszközök.


Többpontos érintőképernyő kezelésének bemutatója a Flash Player 10.1-gyel a MAX 2009 konferencián

Az új, mobil eszközökhöz optimalizált Flash lejátszó elsődleges mobil célplatformját jelenleg a Google Android rendszere jelenti, mellyel egyre több mobiltelefonon, kéziszámítógépen és táblagépen találkozhatunk. Noha ismert az okostelefonpiac egyik vezető gyártójának számító Apple negatív hozzáállása a Flash technológiához, melynek megfelelően az Apple mobil eszközein (iPhone, iPad, stb.) nem engedélyezett a Flash lejátszó telepítése, az Adobe Flash Professional CS5 fejlesztőeszközében megjelent Packager for iPhone kisebb megkötésekkel lehetőséget biztosít Flash alkalmazások átalakítására iPhone-on futtatható alkalmazásokká, így – ha pár flashes szolgáltatásról le is kell mondanunk – mégiscsak felbukkanhatnak Flashsel készült programok az AppStore-ban.

Peer-to-peer kommunikáció

A Flash Player 10 megjelenésével lehetőségünk nyílt a több felhasználó közti valós idejű kommunikáció új módszereit alkalmazni (például chatprogramokban, többszereplős játékokban, stb.). Míg korábban ez csak úgy volt lehetséges, hogy a résztvevők számára megosztandó adatot (szöveget, hangot, videót) egy központi szervernek elküldve ez a szerver továbbította a többi kliensnek, az új RTMFP protokoll már közvetlen kommunikációt is lehetővé tett két gép között (peer-to-peer, P2P), azaz nem kell, hogy a forgalom teljes terhelése egyetlen gépen (a szerveren) folyjon keresztül, hanem sokkal gazdaságosabban osztható el a résztvevő gépek között.

Bár a Flash Player 10 által biztosított p2p-szolgáltatások nem tették lehetővé a több kliens számára történő egyidejű adatküldést (multi-casting), a 10.1 verzióban megjelent új csoportkezelés már megkerüli ezt a korlátot. A csoportkezeléssel lehetővé válik, hogy elosszuk a csoport tagjai között az adatok továbbításának feladatát. Ez röviden azt jelenti, hogy a kliensgépek egy csoporthoz csatlakozhatnak, s a küldő fél csak a hozzá legközelebb eső csoporttagoknak továbbítja az adatokat, amelyek aztán automatikusan továbbküldik azokat az ő szomszédaiknak, azok is az övéiknek és így tovább, míg mindenkihez eljutnak az információk. A szervert csupán egymás megtalálására használják a kliensek, s minden egyéb adatot a szerver közreműködése nélkül továbbíthatnak egymásnak. Ennek különösen nagyméretű adatcsomagok küldésekor van jelentősége, például videó- vagy audióanyagok továbbításánál.

A P2P csoportok alkalmazásával csökken a szerver és az adatküldő terhelése is
A p2p-csoportok alkalmazásával csökken a szerver és az adatküldő terhelése is

A p2p-szolgáltatások hatékony kihasználása érdekében az Adobe kifejlesztette az Adobe Collaboration Services (LCCS) szoftvert, mely tervezhető költségekkel, forgalmi alapon fizetendő díj ellenében biztosítja a szerverhátteret saját fejlesztésű közösségi alkalmazásainknak, többszereplős játékainknak, amennyiben nem kívánunk saját szervert üzemeltetni. A rendszer ingyenesen kipróbálható, s letölthető az LCCS használatához szükséges fejlesztőkészlet, mely kész építőkockákat biztosít a gyakran előforduló feladatok megoldásához (szöveges és audio/video chat, közös rajztábla, stb.).

Grafika, hang

Bittérképes grafika, rajzolás, képfeldolgozás

A Flash lejátszó gyakorlatilag bármilyen elképzelhető grafikus hatás, effektus létrehozását lehetővé teszi a képek és grafikák pixelszintű kezelésének, létrehozásának és manipulálásának lehetősége. Mindez kombinálva a beépített grafikus effektusokkal számtalan érdekes és látványos hatás elkészítését teszi lehetővé. Az egyszerű beépített effektusok/szűrök lehetőségeit szemlélteti ez a példaprogram (a Graphic Effects menüpontot választva), de találhatunk vízfodrozódást, látványos színes alakzatokat, lobogó zászlót vagy robbanást is. Ha arra van szükség, akár a Photoshop is elkészíthető Flashben, ahogy azt a Pixlr vagy a Sumo Paint online képszerkesztő és több más társuk is mutatja.

A Flash alapú Sumo Paint on-line képszerkesztő program kezelőfelülete
A Flash-alapú Sumo Paint online képszerkesztő program kezelőfelülete

A Flash Player 10 újabb lehetőséggel bővítette a képfeldolgozási szolgáltatások körét, a Pixel Bender shaderek használatával. A Pixel Bender shader egy olyan képfeldolgozó program, mely a Pixel Bender szoftver segítségével egy célorientált programnyelven lett létrehozva, majd lehetőség szerint a grafikus kártya hardverét használva kerül futtatásra, a hardveres gyorsításnak köszönhetően nagymértékű sebességnövekedéssel. A Pixel Bender shaderek nem csak Flash alkalmazásokban használhatók effektusok készítésére, hanem az Adobe más szoftvereit (Photoshop, After Effects) is bővíthetjük velük. Valójában nem is csupán képek, hanem akár hangok vagy más jellegű adatok villámgyors feldolgozására is használható, amennyiben az elvégzendő műveletsor jól illeszthető a grafikus kártyák párhuzamos feldolgozási képességeihez.

Egy Pixel Bender shaderrel készült fraktál ábra
Egy Pixel Bender shaderrel készült fraktálábra

Az alábbiakban következzen pár látványos alkalmazása a shadereknek, helyenként együttesen alkalmazva más technológiákkal (3D, stb.):

Hangkezelés

A hangkezelés tekintetében is sokféle eszköz áll rendelkezésre. Hozzáférhetünk a lejátszott hangok részletes adataihoz, aminek a segítségével olyan látványos, a megszólaló hanghoz valós időben alkalmazkodó effektusok készíthetők, amilyeneket az elterjedt médialejátszó programok is képesek megjeleníteni. Jól mutatja az Adobe hozzáállását a Flash lejátszó szolgáltatásainak fejlesztéséhez, hogy a programozott hanggenerálás (azaz nem előre felvett, hanem programmal előállított hangok lejátszása) kifejezetten a Flash-fejlesztők közösségének kérésére került be a Flash lejátszó lehetőségei közé. Ezáltal akár komplett hangvágó program is készíthető Flashsel, ha erre támadna igény. Pár érdekesebb példa:

AIR és ami hiányzik

Nem csak böngésző: asztali alkalmazások készítése (AIR)

A Flash technológia fejlődése lehetővé teszi, hogy ne csak böngészőben futó, weboldalakon megjelenő kisebb alkalmazások készüljenek Flashsel, hanem az Adobe Integrated Runtime (AIR) segítségével böngészőtől független, valódi asztali alkalmazások is készülhessenek. Az AIR egy ingyenesen letölthető és számos platformra (köztük mobil platformokra, például Androidra) telepíthető futtatókörnyezet, mely megvalósításában sok szempontból hasonlít a Java futtatókörnyezet működésére. A hardver- és szoftverkörnyezettől független lehetőséget biztosít Flashben készült alkalmazások futtatására, melyek egyszerűen, egyetlen kattintással telepíthetők és frissíthető akár az interneten keresztül. Az AIR alkalmazások valójában nemcsak Flash technológiával készülhetnek, hanem a HTML, a JavaScript és a PDF technológiák kombinációját is használhatják. Az AIR kibővíti a Flash lejátszó képességeit, s számos olyan szolgáltatást nyújt, ami az asztali alkalmazások fejlesztésekor szükséges a számítógép képességeinek jobb kihasználása érdekében. Többek között az alábbi területeken nyílnak új lehetőségek:

  • helyi fájlok kezelése (mentés, betöltés, létrehozás, stb.)
  • natív ablakok használata (egy alkalmazásnak akár több ablaka is lehet egyszerre) testre szabható kinézettel
  • helyi SQL adatbázis kezelése (SQLite alapon), titkosított is
  • beágyazott böngésző megjelenítése (Webkit)
  • kibővített nyomtatási lehetőségek
  • USB-eszközök használata
  • natív alkalmazások futtatása
  • TCP socket szerver létrehozása
  • natív drag&drop használata
  • PDF-fájlok megjelenítése
  • automatikus alkalmazásfrissítés interneten keresztül
  • tartalomvédelem (Adobe Flash Access 2)

A saját fejlesztésű AIR alkalmazások terjesztésének megkönnyítése érdekében az Adobe a már létező alkalmazásboltok mintájára megnyitotta saját üzletét, az Adobe AIR marketplace-t, ahol könnyen és gyorsan elhelyezhetjük programjainkat, áthárítva a terjesztés és a fizetés lebonyolítását.

Mi hiányzik?

Annak ellenére, hogy a Flash valóban nagyon sokféle szolgáltatást nyújt, természetesen mindig van, ami hiányzik valakinek. Mivel mindenkinek másra lehet szüksége, nem állíthatunk össze egy teljesnek mondható listát, így csak pár kisebb javaslatot sorolunk fel, az Adobe Bug System rendszerbe a felhasználók által beküldött javaslatokból is szemezgetve:

  • HTTP-adatküldés folyamatának nyomon követése
  • memóriában tárolt videó lejátszása
  • helyi SQL adatbázis használata böngészőben futó Flash alkalmazásban is
  • többszálú programfuttatás
  • átláthatóbb és részletesebb beállítási lehetőségek a biztonsági korlátozások szabályozására
  • generikus adattípusok
  • Flash alkalmazás kiemelése a böngészőből és asztali alkalmazásként való futtatása
  • nagyobb teljesítmény... :-)

Az egyik leggyakrabban emlegetett hiányosság, a 64 bites operációs rendszerekhez illesztett Flash lejátszó nem került fel a listára, mert ennek a kérdésnek a megoldása már folyamatban van. A 64 bites változat jelenleg béta-állapotban van, s Flash Player Square kódnéven hozzáférhető. Az Adobe Labs érdekes betekintést enged az Adobe fejlesztési szemléletébe és ötleteibe, hiszen itt számos szoftverük előzetes, még végleges kiadás előtti változata tölthető le, illetve kísérleti projektekbe is belenézhetünk, s nem csak a Flash technológiához kapcsolódóan.

Rákos Attila
Magyar Adobe Felhasználók Egyesülete (HAUG)

  • Kapcsolódó cégek:
  • Adobe

Azóta történt

Előzmények