Hlavní navigace

JavaScript dokáže emulovat Flash Player

4. 6. 2010
Doba čtení: 4 minuty

Sdílet

Milovaný i nenáviděný, používaný i zakazovaný, opěvovaný i proklínaný. Takový je Flash Player. Technicky velmi problematický modul do prohlížečů je ale velmi užitečný pro vývojáře složitých webových aplikací. Objevují se řešení problémů s Flashem – emulátory napsané v JavaScriptu. Co vlastně dokáží?

Velcí hráči nechtějí Flash

Flash je tu s námi už mnoho let, je nainstalován na drtivé většině počítačů a obvykle funguje a plní svou funkci velmi dobře. Přesto je to často spíše trpěný kus software, který svým uživatelům přináší nemalé problémy. Pověstný je svou náročností na procesorový čas a také častými pády, se kterými téměř vždy stáhne i samotný prohlížeč. Podle statistiky, kterou před několika lety vydala Mozilla, může právě Flash za většinu pádů prohlížeče Firefox.

V poslední době se navíc k odporu proti Flashi postavili i velcí hráči v čele s firmou Apple. Ta ve svých populárních zařízeních iPhone a iPad odmítá Flash implementovat nebo jeho instalaci povolit. Přestože se Adobe snaží dostat Flash i na mobilní zařízení, Apple stále odmítá a poukazuje na přílišnou náročnost takového řešení, která se na mobilních přístrojích podepíše především na výdrži. Problém s výkonem naznačují i první testy mobilního Flashe. Uživatelé ale hlásí, že například na Nokii N900 s procesorem na 600 MHz se chová Flash velmi dobře.

Dalším velkým odpůrcem Flashe, alespoň pro přehrávání webového videa, je firma Google. Ta nedávno otevřela video formát VP8 a na YouTube už začal převádět videa do nového formátu. Většina prohlížečů už teď tento nový formát podporuje a vy si jej můžete na YouTube vyzkoušet.

Zajímavé je, že firmy Apple společně s Googlem mají dost velkou sílu na to, aby minimálně výrazně rozvířily vodu a způsobily větší webové vlnobití. Google nechce Flash pro přehrávání videa a Apple ho nechce vůbec. Uživatelé ale stále chtějí svůj obsah i na mobilních zařízeních. Cesta ven tedy vede jediným směrem – alternativním řešením. Zatímco Google už to své připravil, hledání toho pro ostatní Flash prvky nás teprve čeká.

Kudy tudy do Bezflashova

Google chce Flash nahradit pomocí nativních funkcí prohlížeče a využívá k tomu tag <video> a také ostatní podobné snahy vedou skrze jádro prohlížeče očištěné od všemožných přídavků. Podle mnohých mají moderní prohlížeče dostatečné schopnosti na to, aby nebyl Flash potřeba.

Flash je nástroj, který pomocí příkazů pro virtuální grafický engine dokáže pracovat s vektorovou grafikou. V tomto směru by tedy mohl být teoreticky nahrazen JavaScriptem a vektorovým formátem SVG. Už delší dobu můžeme díky těmto technologiím hrát na webu třeba šachy nebo hru Wolfenstein. Proč to tedy nezkusit na Flash.

Prvním viditelnějším projektem pokoušejícím se nahradit Flash pomocí JS a SVG je Gordon, jehož autorem je Tobias Schneider. Na domovské stránce projektu si můžete prohlédnout několik jednoduchých demonstračních ukázek. Můžete si je i přímo porovnat s originálními animacemi. Výsledek je překvapivě dobrý a implementace je z hlediska uživatele také velmi prostá:

<head>
    <script type="text/javascript" src="../gordon.js"></script>
  </head>
  <body onload="new Gordon.Movie('blue.swf', {id: 'stage', width: 500, height: 400})">
    <div id="stage"></div>
  </body>

Výsledek funguje ve Firefoxu, Chrome i Safari včetně toho v iPhone. Bohužel zatím umí jen SWF verze 1, i když zvládá některé funkce z verzí vyšších. Aktuální je ovšem verze 10. Zatím je tedy Gordon použitelný jen pro opravdu jednoduché věci, což je patrné i z demonstračních ukázek. Autor ale tvrdí, že pracuje na podpoře SWF 2 a časem se dostane ještě dál. Uvidíme.

Novějším a nadějnějším projektem je Smokescreen. Jeho autorem je společnost RevShock a zatím o něm není příliš mnoho známo. Podle prvních informací se bude jednat o open-source nástroj pro přímou konverzi SWF do JavaScriptu. Opět jsou k dispozici demonstrační ukázky, které ale vypadají velmi slibně. Sada podporovaných prohlížečů je stejná: Firefox, Chrome, Safari a mobilní Safari.

Smokescreen zatím není k dispozici, i když firma tvrdí, že brzy bude. Je primárně určen pro převod flashové reklamy. Ta je samozřejmě tahounem podobných snah, protože zadavatelé reklamy by rádi viděli své vizuálně zajímavé bannery i na stále se šířících iZařízeních.

CS24_early

Je to opravdu Flash v JavaScriptu?

Úspěch takového řešení závisí především na výkonu moderních webových prohlížečů. Přestože se výrobci stále snaží jej vylepšovat a za poslední dva roky došlo k výraznému pokroku, pravděpodobně nikdy nedosáhne javascriptová implementace Flashe nativního výkonu. O porovnání výkonů si můžete přečíst v našem velkém testu osmi prohlížečů.

Chtěli byste Flash nahradit JavaScriptem?

Podobné projekty tak zřejmě přinesou dva významné nové prvky: jednak se samozřejmě objeví nová, barevnější a veselejší reklama na mobilních zařízeních, ale vývojáři také budou moci pro tvorbu webů použít moderní nástroje určené pro přípravu flashových animací. Ty z hlediska práce s grafikou dosáhly vysoké kvality a v budoucnu bude zřejmě možné je využít pro přípravu líbivé a pokročilé grafiky bez nutnosti instalovat do klientských prohlížečů podpůrné moduly. Kdy se asi objeví rozšíření pro blokování reklamy v nových formátech?

Byl pro vás článek přínosný?

Autor článku

Petr Krčmář pracuje jako šéfredaktor serveru Root.cz. Studoval počítače a média, takže je rozpolcen mezi dva obory. Snaží se dělat obojí, jak nejlépe umí.