Использование SWFObject

Опубликовано 05 1 2010 Начлаб

Думаю, всем, кто работает с Flash, известен такой способ вставки роликов на страницу, как SWFObject. Сейчас это уже SWFObject 2. Всем известные еще с первой версии плюсы - это соответствие веб-стандартам и использование внешнего управления переменными в самом ролике, продолжают иметь место быть и следовательно, я рекомендую пользоваться таким способом для вставки Flash. Единственную поправку я могу сказать, что я предочел бы использовать эту конструкцию для меню и галерей, т.е. объектов, для которых нужно иметь возможность управления извне. SWFObject 2 позволяет вставить ролик в страницу как статически, обычной разметкой, так и динамически, то есть, как и раньше, с использованием JavaScript. Чем хорошо статический способ, так это тем, что даже если у посетителя сайта отключено выполнение JavaScript, ролик все равно будет виден, ну а динамический путь благополучно запрещает активацию Flash содержимого, к примеру в Опере или в печально/унылом IE. Кстати: SWFObject кроссбраузерен, и работает во всех популярных браузерах на Mac и PC.

Для тех, кто не совсем в курсе, что к чему, поясняю основную пользу от SWFObject: скрипт позволяет показать пользователю, не установившему плагин для просмотра Flash-контента в браузере, альтернативный контент, который, кроме того, еще и прекрасно индексируется поисковиками.

Для работы с SWFObject нужно скачать JavaScript API. Сам файл SWFObject совсем небольшой, всего 8.7Kb. По сути, JavaScript используется для того, чтобы корректно определить необходимую версию Flash Player, и запускать Adobe Express Install, если версия устаревшая. К сожалению, тег embed еще пока есть и нужен он пока для работы со старыми версиями Webkit, которые игнорируют вложенные в object элементы param.

Итак,

Стандартная разметка

<html>
  <head>
    <title>SWFObject - static</title>
   <script type="text/javascript" src="swfobject.js"></script>
    <script type="text/javascript">
    swfobject.registerObject("Id", "9.0.0", "expressInstall.swf");
    </script>
  </head>
  <body>
    <div>
      <object id="Id" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="468" height="60">
        <param name="movie" value="flash.swf" />
        <!--[if !IE]>-->
        </object><object type="application/x-shockwave-flash" data="flash.swf" width="468" height="60">
        <!--<![endif]-->
          <p>Alternative content</p>
        <!--[if !IE]>-->
        </object>
        <!--<![endif]-->
     
    </div>
  </body>
</html>

На данном примерном коде веб-страницы, мы видим следующее:
Обязательно нужно продублировать object, внешний object работает для унылого IE, а внутренний object для остальных браузеров, поэтому если нужно определить атрибуты или param, их следует также прописать дважды.
Обязательные атрибуты:

classid - всегда следует писать:D27CDB6E-AE6D-11cf-96B8-444553540000
type - всегда следует писать application/x-shockwave-flash
data - указывается для внутреннего object, означает путь к SWF-файлу.
width - определяет ширину ролика
height - определяет высоту ролика

Обязательные param:

movie - только для внешнего object, определяет путь к SWF файлу

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

Этой строкой мы собственно и подключаем скрипт SWFObject.

<script type="text/javascript">
swfobject.registerObject("myId", "9.0.0", "expressInstall.swf");
</script>

Этим мы, что называется, «регистрируем» наш Flash ролик. Первый аргумент id – он используется в разметке. Следом идет требуемая версия Flash Player. А затем задается активация Adobe Express Install, то есть там надо прописать путь к expressInstall.swf который есть в архиве SWFObject. Кстати, там в архиве есть и fla-файл, на случай, если вам захочется сменить дефолтный загрузчик. Замечу, что минимально возможный размер SWF для его работы 310х137 пк.

Динамический метод

<html>
  <head>
    <title>SWFObject dynamic embed</title>
    <script type="text/javascript" src="swfobject.js"></script>
    <script type="text/javascript">
    swfobject.embedSWF("flash.swf", "Alternative", "300", "120", "9.0.0");
    </script>
  </head>
  <body>
    <div id="Alternative">
      <p>Alternative content</p>
    </div>
  </body>
</html>

В динамическом методе вставки, сперва следует задать альтернативный контент:

div id=" Alternative ">
<p>Alternative content</p>

Затем, следовательно, подключаем скрипт:

<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript">
swfobject.embedSWF("flash.swf", "Alternative", "300", "120", "9.0.0");
</script>

В динамическом методе есть 5 обязательных атрибутов: swfUrl, id, width, height, version, и четыре дополнительных expressInstallSwfurl, flashvars, params, attributes.

Основные атрибуты:

swfUrl – указывается путь к файлу ролика
id - указывается id того HTML элемента в котором прописан альтернативный контент
width (Строка, обязательный) ширина SWF
height (Строка, обязательный) высота SWF
version указывается версия FlashPlayer необходимого для воспроизведения вашего ролика, в формате "major.minor.release".

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

expressInstallSwfurl - указывается путь к файлу expressinstall.swf.
flashvars – переменные, передаются в ролик (имя: значение)
params - элементы params
attributes - атрибуты элемента object

Кстати говоря, настройки фона ролика (прозрачный/непрозрачный) при использовании SWFObject прописывается строками:

var params = {wmode:"opaque"};

или

var attributes = {wmode: "transparent"};

_______________________________________________________________________

Скачать SWFObject

Скачать генератор файла SWFObject

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Только один коммент to “Использование SWFObject”

  1. [...] баннер в веб-страницу очень удобно с помощью SWFObject, но можно использовать и обычный код, который выдает [...]

Оставить коммент