PDA

Просмотр полной версии : Вопрос: размеры swf при публикации в HTML


max_fl
10.11.2006, 15:52
Есть swf файл. Например, banner.swf. Размеры (ширина и высота) его неизвестны. Требуется отобразить баннер в HTML странице. Но как узнать размеры?

Если использовать такой HTML код:

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0
" id="banner" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="banner.swf" />
<param name="quality" value="high" />
<embed src="banner.swf" quality="high" name="banner" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"; />
</object>

то баннер отображается в размере 240x200 вне зависимости от размера заданного на этапе создания.

При этом если отобразить баннер в плеере, вне браузера, то он показывается в нужных размерах, т.е. в тех, которые были заданы на этапе создания.

Измерять баннер линейкой на экране не хочется, тем более, если речь идет об автоматическом отображении большого количества баннеров разных размеров.

Посоветуйте, как быть?

iNils
10.11.2006, 15:54
Для оформления своего кода, надо использовать теги .

Dendroid
10.11.2006, 15:59
Средствами html? Сложно. Обычно всё-таки идут от обратного - баннеры делают размером под определённый размер, в котором они должны будут показываться.

El Scream
10.11.2006, 16:39
У флешки ширина 100% и высота 100%
В html коде вставляешь флеш в таблицу у которой прописываешь высоту и ширину. Вот пример html кода для sample.swf

<TABLE cellpadding="0" cellspacing="0" border="0" width="300 px" height="300 px"><tr><td>
<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" WIDTH="100%" HEIGHT="100%" id="sample">
<PARAM NAME="movie" VALUE="sample.swf">
<PARAM NAME="quality" VALUE="high">
<PARAM NAME="bgcolor" VALUE="#'+color+'">
<EMBED src="sample.swf" quality="high" WIDTH="100%" HEIGHT="100%" NAME="sample" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"></EMBED></OBJECT><br>
</td></tr></table>

Dendroid
10.11.2006, 16:54
У флешки ширина 100% и высота 100%
В html коде вставляешь флеш в таблицу у которой прописываешь высоту и ширину. Вот пример html кода для sample.swf

А высоту и ширину где брать? ;) Как раз в этом и был вопрос.

max_fl
10.11.2006, 18:50
Средствами html? Сложно.
Все-таки сложно или невозможно? Если сложно, то как?

Dendroid
10.11.2006, 19:39
Дефолтные значения высоты и ширины - понятия эфемерные, не известные ни флэшке, ни браузеру. Хотя прописаны в заголовке swf.
Флэшплеер их знает (ему для вычисления растяжения надо), но никому не скажет.
Флэшка сама их может определить, только если в ней заданы такие константы скриптом, либо, например, если есть объект на стаже, растянутый на весь стаж в редакторе - в этих случаях можно определить.
php ещё может считать в заголовке.
Так что вариант решения зависит от условий вашей задачи и доступных средств.
Видел ещё такой вариант решения: каждый баннер в своём имени содержит размер типа: "banner_100_100_12456.swf" (100х100) - это имя анализируется серверным скриптом (да можно и javascript-ом), и создаётся контейнер нужного размера в html (в javacripte в этом случае удобно использовать SWFObject - просто вычисляя параметры размера на ходу).

max_fl
24.11.2006, 13:31
Оказывается в PHP это сделать очень просто:

list($width, $height, $type, $attr) = getimagesize("img/banner.swf");

PetrV
07.03.2007, 11:49
Оказывается в PHP это сделать очень просто:

list($width, $height, $type, $attr) = getimagesize("img/banner.swf");

Не работает! под php4 по крайней мере.
Может это только php5 может узнать размеры флешки?

etc
07.03.2007, 12:06
Под php4 работает, если установлена GD.
http://ru.php.net/getimagesize