“Валиден” Flash

November 24th, 2007 Публикувано в Мрежата, Програмиране, Разни

Преди няколко дена си инсталирах един плъгин за WordPress-а, наречен Nazdrave-MP3. Най-общо казано, това е Flash MP3 плеър, на който просто се задава път до файла и се появява удобна лента с контроли за просвирване на музикалния файл. За справки – предходната ми публикация: Kat DeLuna. Представете си как се почувствах, като щракнах на линка за валидизиране на страницата.

Добре, че от W3 консорциума са предвидливи пичове и ми спестиха дълго ровичкане из Google. Директно си има линк със съвети как да запазим страницата валидна, като в същото време в нея има Flash. Проблема идва от това, че за да се вмъкне в страницата, Flash използва таг-а “embed”. Ето един пример, това е начина по който Nazdrave-MP3 вмъква Flash-а:

<embed src=”https://blog.nazdrave.net/wp-content/plugins/nazdrave-mp3/mp3player.swf” width=”300″ height=”20″ type=”application/x-shockwave-flash” pluginspage=”https://www.macromedia.com/go/getflashplayer” flashvars=”file=$path$attributes” />

Проблема е, че “embed” никога не е бил част от който и да е стандарт за хипертекст. Ако се ползва генератор на скриптове за вмъкване на Flash, се използва т.нар. двоен метод, при който веднъж се вмъква с “object” и след това с “embed” за браузърите, които не го поддържат. Докато “embed” присъства в кода на страницата, тя няма да е валидна.

Да се върнем към линка, посочен от W3C, който сочи към един уебдизайнерски блог: Flash Satay: Embedding Flash While Supporting Standards. Там Drew McLellan разкрива по какъв начин е успял да пусне Flash и в същото време да го направи по валиден начин, чрез анализ на сорсовете и превръщане на “embed” в “object” (който вече си е в XHTML стандарта). Следвайки статията, промених кода на плъгина и воала, Flash-а си е на мястото, като в същото време W3 валидатора ми показа зелена лента. Ето кода, с който замених горепосочения:

<object
type=”application/x-shockwave-flash” data=”$url/wp-content/plugins/nazdrave-mp3/mp3player.swf?file=$path$attributes”
width=”300″ height=”20″>
<param name=”movie” value=”$url/wp-content/plugins/nazdrave-mp3/mp3player.swf?file=$path$attributes” />
</object>

Статията е малко стара, от 2002 година и накрая има малко информация, която вече не е актуална. Става дума за работата на този валиден метод за вмъкване на големи файлове под Internet Explorer. Според статията, при IE не се стриймват файловете на части, а трябва всичко да се изтегли и чак тогава да започне възпроизвеждането. Това би било доста досадно при работа с големи файлове. За радост този проблем явно е отстранен отдавна и сега с IE работи точно както трябва.

Коментарите са забранени.