Валидная вставка Flash в HTML

Многие, кто работали с валидаторм знают, что он не любит код, который генерирует дримвивер. Вот пример кода:


<object  classid="clsid:d27cdb6e-ae6d-11cf-[...]”  codebase=”http://fpdownload.macromedia.com/
 pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0? width=”180?  height=”80?>
 <param name=”movie” value=”logo.swf” />
 <param name=”quality” value=”high” />
 <param name=”bgcolor” value=”#ffffff” />
 <embed src=”logo.swf” quality=”high” bgcolor=”#ffffff”   type=”application/x-shockwave-flash” width=”180? height=”80?   pluginspage=”http://www.macromedia.com/go/getflashplayer” />
 </object>

по правилам валидатора этот код не пройдет валидацию. Что же нам делать? Использовать один замечательный скрипт, который избавит от головной боли.

И так, скачиваем этот скрипт

Вставляем его в шапку


<script  type="text/javascript" src="/swfobject_source.js"></script>

И можно вставлять наш флеш-ролик.


<div  id="roll">
 Этот текст будет заменён Flash роликом, его пользователь увидит лишь в  том случае, если у
 него нет необходимой версии Flash Player-а или вовсе его нет.
 </div>

Сам флеш вставляется так:


<script  type="text/javascript">
 var so = new SWFObject("logo.swf", "roll", "180", "80", "8",  "#FFFFFF");
 so.write("roll");
 </script>

Обратите внимание, что мы указываем «roll» как тот контейнер в котором будем выводить нашу флешку.

По мимо всего прочего, у скрипта есть все нужные параметры, вот их список и краткое описание:

var so = new SWFObject(swf, id, width, height, version, background-color [, quality, xiRedirectUrl, redirectUrl, detectKey]);

Обязательные параметры:

swf — Путь к флеш ролику.
id — ID того элемента, куда будет вставляться флеш.
width — Ширина флеш ролика.
height — Высота флеш ролика.
background-color — Цвет фона у ролика.

Дополнительные параметры:

quality — Качество отображения. По умолчанию “high”.
xiRedirectUrl — Адрес, куда переадресовывать пользователей после ExpressInstall upgrade.
redirectUrl — Адрес переадресации пользователей без необходимой версии Flash Player-a.
detectKey — Специальная “URL переменная” на случай, когда нет необходимости проверять на наличие Flash-a, путем добавления к URL с документом ?detectflash=false

И это не всё. SWFObject умеет ещё много всего полезного. Например, задавать прозрачность у Flash ролика и передавать ему Flashvars (полный список параметров):


<script  type="text/javascript">
var so = new SWFObject("logo.swf", "roll", "180", "80", "8",  "#FFFFFF");
so.addParam("wmode", "transparent");
so.addVariable("variable1", "value1");
so.addVariable("variable2", "value2");
so.addVariable("variable3", "value3");
so.write("roll");
</script>

Как можно заметить, всё достаточно просто и красиво.