Flash a nßhrada elementu embed elementem object v XHTML
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:
<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:
<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:
- 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);.
- 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.
- 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...