Reklama

zonerbooks.cz | zoner.cz | czechia.com | regzone.cz | inshop.cz | inmail.cz | zonerpress.cz | zonerantivirus.com | zonerama.cz

interval.cz

Flash a náhrada elementu embed elementem object v XHTML

20. 03. 2004 | Ondřej Zábojník | XHTML | Komentáře: 2

Element "embed" je používán prohlížečem Netscape a jeho následovníky jako ekvivalent elementu "object", který se využívá při vkládání flashových animací do webových stránek. Lépe řečeno, není jen ekvivalentem, ale zároveň i jedinou funkční možností vložení flashové animace do těchto prohlížečů. Problém je ovšem ten, že standard XHTML použití tohoto elementu nepřipouští.

Z výše řečeného vyplývá, že použitím elementu embed znehodnotíme stránky, které jinak dodržují standard XHTML. Tím vyvstává otázka, zda je lepší mít validní stránky či poskytnout animaci i uživatelům Mozilly, Netscape a jiných prohlížečů. Původně jsem vůbec netušil, že element embed není v XHTML podporovaný, tudíž to pro mě bylo docela překvapení. Samozřejmě jsem nechtěl, aby mi tento detail kazil celý výsledek, a tak jsem začal hledat nějaké univerzální řešení.

Pokud by šlo jen o validátor, stačí element embed se všemi parametry vkládat prostřednictvím JavaScriptového document.write(). Podle mého názoru je ale tento trik k ničemu, protože sice oklame validátor, ale problém se tím nijak nevyřeší. Následující příklad ukazuje, jak bylo prováděno vkládání objektu s Flash animací starými standardy HTML:

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#3,0,0,0" width="" height="">
    <param name="src" value="flash-file.swf">
    <embed src="flash-file.swf" pluginspage="http://www.macromedia.com/shockwave/download/"
type="application/x-shockwave-flash" width="" height="">
    </embed>
</object>

Výše uvedeného ovšem v XHTML nelze použít. Správný způsob, kdy bude animace fungovat ve všech prohlížečích a dokument přitom zůstane validním XHTML aniž by primitivně klamal validátor, je tento:

<div>
   <object type="application/x-shockwave-flash" data="flash-file.swf" width="" height="">
   <param name="movie" value="flash-file.swf" /></object>
</div>

Skutečně je to takto jednoduché - pouhý element object, oproštěný od všech nepotřebností a uzavřený do elementu div. Ovšem má to jedno "ale". V šesté verzi prohlížeče Microsoft Internet Explorer je vše v pořádku, avšak starší verze, a možná i starší verze některých jiných browserů, mohou dělat nepořádek. Nebudou streamovat. Naštěstí i zde si můžeme velice jednoduše pomoci následujícím postupem:

  1. Vytvořte novou flashovou animaci ve velikosti té animace, kterou chcete umístit na stránky. Do jejího prvního framu vložte ActionScript _root.loadMovie(_root.path,0);.
  2. Z této "animace" vytvořte nový swf souboru, řekněme třeba "c.swf". Na stránkách pak tuto svou animaci zobrazte zadáním příslušné hodnoty pro cestu k souboru, například c.swf?path=flash-file.swf.
  3. Nyní můžete klidně i za běhu stránek měnit animace. Můžete také použít přímou cestu k souboru použitím ActionScriptu _root.loadMovie("movie.swf",0);!

A tím je vyřešen problém univerzálního přístupu k Flash souborům ve všech prohlížečích při dodržení požadavků standardu XHTML. Pokud nevěříte, snad vás přesvědčí malá ukázka...

Odkazy a zdroje

  • Bye Bye Embed - český překlad článku popisujícího metodu, pomocí níž se lze definitivně zbavit elementu embed; Elizabeth Castro (21. 7. 2006, Interval.cz)
  • Jak obejít aktivování pluginů v IE - úprava obcházející nutnost aktivovat kliknutím každý aktivní prvek v nových verzích MSIE; David Grudl (12. 4. 2006, La Trine)
  • Jak správně vložit Flash do stránky - validní a funkční Flash s přístupným alternativním obsahem; David Grudl (12. 4. 2006, La Trine)

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.


Další aktuální články na interval.cz

Tematicky související články

Dejte vědět i ostatním o článku

Komentáře ke článku

Přidat nový komentář

Autor komentáře: Anonymní

Datum vložení: 07. Srpen 2011, 10:12:50

sháním kontakt na Ondřeje Zábojníka, jehož maminka se jmenuje Pavla a je z Valašského Meziříčí

cech.lubos@seznam.cz

Autor komentáře: cech.lubos@seznam.cz

Datum vložení: 08. Srpen 2011, 06:41:21

sháním kontakt na Ondřeje Zábojníka, jehož maminka se jmenuje Pavla a je z Valašského Meziříčí
cech.lubos@seznam.cz

Zpět na začátek komentářů | Zpět na začátek článku

Přidat nový komentář

Jméno a e-mail jsou nepovinné. Příspěvky obsahující odkaz jsou moderovány.

Zoner AntiVirus Free pro Android
zabezpečte si svůj smartphone, zdarma
Profesionální eshop Zoner inShop od 990 Kč.
Zoner Photo Studio 14 – vyzkoušejte ZDARMA
Reklama
Reklama

Syndikace

hledáme nové autory | redakce interval.cz | reklama na interval.cz

© ZONER software, a.s., všechna práva vyhrazena, interval.cz dodržuje právní předpisy o ochraně osobních údajů. Powered by WordPress.