Мой комп - Железо. Windows. Интернет. Программы

Вставляем flash ролики на web-страницу. Вставка flash в HTML Вставка swf в html

Сегодня решил открыть некоторые простенькие секреты, которые позволят вам намного улучшить внешний вид вашего сайта. И речь пойдет о технике флеша.

Вообще, я считаю, что делать весь сайт на флеше – просто неуважение к посетителю, да ещё и проблемы с индексацией в поисковиках, но вот делать интересные вставки на флеше, очень даже украшает дизайн любого сайта.

В статье речь пойдет о том, как правильно вставлять эти флешролики так, чтобы они органично вписывались в фон.

Для начала, я хотел бы показать зачем нам это нужно на примере.

Скачиваем последнюю версию с гугла, там же можно посмотреть и разные способы вставки, я же расскажу об одном из них, который нам нужен будет для вставки флеш с прозрачным фоном.

Для этого будем использовать динамический метод вставки флеш. Это значит, что нужно в коде создать div с определенным id – в него мы вставим альтернативный контент, который будет показываться, если у пользователя не установлен\отключен флеш проигрыватель. Получится что-то вроде этого

Для просмотра ролика установите флеш-проигрыватель

Теперь нужно вывести вместо нашего слоя флеш ролик. Для этого пишем такой код

var flashvars = {}; var params = {wmode: "transparent"}; var attributes = {}; swfobject.embedSWF("myContent.swf", "myContent", "300", "120", "9.0.0", "expressInstall.swf", flashvars, params, attributes);

Теперь расшифрую.

  • var flashvars нужно нам для обозначения переменных. В нашем случае, это не нужно.
  • var params – очень важно здесь указать wmode: “transparent” – потому что без этого, ролик вставится без прозрачного фона. В этой строке можно указывать и другие параметры для флеша
  • var attributes – здесь указываем аттрибуты, нам это тоже не нужно.

В этой строке

Swfobject.embedSWF("myContent.swf", "myContent", "300", "120", "9.0.0", "expressInstall.swf", flashvars, params, attributes);

Мы указываем по порядку

  • swfUrl (путь к ролику на флеше)
  • id (id того слоя, который мы запомнили выше)
  • width (ширина SWF)
  • height (высота SWF)
  • version (версия Flash плеера необходимого для данного SWF)
  • expressInstallSwfurl (задает URL вашего express install SWF и активирует Adobe express install . Обратите внимание, что express install срабатывает только один раз (при первом исполнении), требует Flash плеер версии 6.0.65 или старшей на Win или Mac платформах, минимально возможный размер SWF для его работы 310?137px.)
  • flashvars (подключаем переменные)
  • params (подключаем параметры)
  • attributes (подключаем атрибуты)
  • Вот и все, если же что-то непонятно, то вот вам архив, в нем показан пример подключения такого флеш ролика.

    fleek.org

    В последнее время очень популярными в Интернете стали так называетмые Flash-ролики . Очень многие web-мастера используют такую flash-анимацию на своих сайтах. Сегодня мы разберемся как вставить flash-ролик на web-страницу.

    Существует много программ для записи и изготовления flash-роликов. Одним из лидеров по производству flash-роликов является программа Camtasia Studio . Эта программа предназначена для изготовления flash-роликов как для использования в Интернете, так и для создания различных обучающих курсов в Видео формате, например записанных с экрана монитора.

    С помощью этой программы можно изготавливать и свои цифровые товары для продажи в Интернете, если Вы этим занимаетесь - то эта программа для Вас. Скачать бесплатно Camtasia Studio можно или. Кстати программа полностью руссифицирована.

    Если Вам попадется подобный Видео курс - знайте этот Видео курс сделан с помощью программы Camtasia Studio.

    После обработки записанного изображения, на выходе программы Camtasia Studio получается несколько файлов. Видео файл, точнее Flash-ролик , который нам нужен сохраняется в формате .SFW . Т.е. найдите в папке в которой Вы сохранили Flash-ролик файл с расширением .SFW , откройте его например в программе .

    Flash-файл может содержать в себе мультимедийный документ, анимацию, векторную и растровую графику, звук, элементы управления, поддерживающие интерактивность.

    В коде открытого файла, найдите вот такую конструкцию (Листинг ниже):

    Давайте разберёмся, что же здесь что обозначает:

    Тэг содержит главный параметр - classid , который указывает на Flash-проигрыватель (элемент управления ActiveX). Параметр CODEBASE указывает, где в сети Интернет взять Flash-проигрыватель, если он у Вас не установлен.

    Параметры объекта записываются в тэге . Параметр movie содержит имя.swf файла, wmode - определяет, каким будет фон Вашего ролика. В частности, значение transparent - задает прозрачность фона . Параметр quality - указывает на качество воспроизведения. Все возможные значения параметров лучше всего посмотреть в справке к программе Flash. Но, по большому счету, здесь указаны самые применяемые и распостраненнные, а следовательно изменять ничего не нужно.

    Как видите, здесь тег вложен внутрь тега . Это сделано для поддержки Flash в разных Браузерах - старых и новых. Если пользователь использует современный Браузер, то читается тэг , затем тэги , загружается компонент ActiveX, файл фильма и начинается его проигрывание.

    Тег , вложенный внутрь тега , в этом случае игнорируется. Если же пользователь использует более старую версию Браузера, все происходит по-другому... Так как теги и не известны старым программам, они их игнорируют - это стандартное поведение Браузера, встретившего незнакомый тэг. В этом случае обрабатывается тег , пользователи, так или иначе, увидят на веб-странице фильм Flash.

    Итак, чтобы вставить на web-страницу сайта flahs-ролик, Ваша задача скопировать в окрытом файле SWF код, указанный в Листинге (выше) и указать реальное имя файла и путь до этого SWF файла. Естественно сам файл SWF , так же необходимо закачать на сервер где лежит Ваш сайт. Как видите все довольно просто.

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

    Если Вы столкнулсь с ситуацией когда Flash-ролики не запускаются, в 99% случаев это значит, что на Вашем компьютере не установлен Flash-проигрыватель или установлена устаревшая версия. Причем обращаю Ваше внимание, что Flash-проигрыватели различают для разных Браузеров.

    Всем добрый день! Сегодня поговорим с вами о том, как вставить flash на сайт. Казалось бы, вопрос пустяковый. Если это баннер, то просто скопировать предложенный код и разместить в шаблоне, виджете или на странице через редактор. Если это flash анимация для сайта, то вставить при помощи того же кода, но прописанного самостоятельно. Однако и в этом несложном процессе есть свои тонкости, о которых мы сейчас поговорим.

    Flash анимация для сайта

    Итак, нам потребовалось разместить флэш анимацию на сайте. Для этого используется стандартный код:

    На первый взгляд все правильно и ничто не предвещает проблем. Однако, если вы прокрутите страницу вверх, то увидите такую особенность, что размещенная таким образом flash анимация будет перекрывать админский тулбар - верхнюю черную панельку админа WordPress.

    По большому счету, это не критично, поскольку данную панель видите только Вы и ваши помощники, если на блоге отключена регистрация пользователей. Но настоящие проблемы возникают, когда на сайте используется многоуровневое css меню, под которым размещен флэш баннер, который в этом случае его перекрывает.

    Это происходит оттого, что flash всегда по глубине находится впереди блоков div. Чтобы этого избежать, нужно добавить всего лишь один дополнительный параметр в наш код:

    В этом случае ролик flash ведет себя как обычное изображение. Также можно воспользоваться аналогичным параметром value=»transparent», но это создаст дополнительную нагрузку ни замедлит загрузку страницы. В конечном результате на код вставки флеш на сайт будет выглядеть так:

    Плагин для размещения flash анимации на сайте

    Если Вам приходится часто вставлять разные ролики или просто боитесь что-то неправильно написать в этом длинном коде, то можно воспользоваться плагином, который вставляет флеш на сайт автоматически - от вас требуется лишь указать адрес его расположения. Называется он WP-SWFObject. Как обычно, скачиваем и устанавливаем его, затем заходим в «Параметры > WP-SWFObject» и выполняем необходимые настройки. Здесь можно все оставить по умолчанию, кроме одного - пункта «Window Mode». Для того, чтобы вставить swf на сайт с учетом тех параметров, которые нам нужны, выберите здесь из выпадающего списка «OPAQUE» и сохраните настройки.

    Теперь, чтобы вставить флэш на сайт, пропишите шорткод (его потом можно для удобства добавить на панель редактора)

    В действии выглядеть будет так:

    Для прямого размещения через шаблон используйте другой код:

    Подготовил: Евгений Рыжков Дата публикации: 23.02.2009

    Последнее обновление: 17.03.2010

    Задача

    Вставить flash-объект в HTML страницу, придерживаясь следующих требований:

    • кроссбраузерность — работоcпособность во всех современных браузерах;
    • альтернативный контент — если не установлен flash или установленная устаревшая версия, выводим альтернативное изображение и ссылку для инсталляции свежей версии flash;
    • максимальная простота и гибкость использования метода;
    • SEO и юзабилити дружественность;
    • чистота кода — меньше кода, проще работать с шаблонами;
    • соответствие стандартам.
    Решение с использованием javascript библиотеки SWFObject 1



    if (swfobject.hasFlashPlayerVersion("6.0.0")) {
    var fn = function() {
    var att = { data:"images/flash/test.swf", width:"200", height:"300" };
    var par = {
    menu:"true",
    quality:"high",
    wmode:"opaque"
    };
    var id = "replaceMe";
    var myObject = swfobject.createSWF(att, par, id);
    };
    swfobject.addDomLoadEvent(fn);
    }

    Блок, в который будет вставлен flash, имеет альтернативный контент — это будет отображено при не установленном flash, либо при устаревшей версии. Для примера выведем альтернативную картинку и ссылку для установки свежей версии flash:




    Заметки
    • недостаток метода — у пользователей у которых установлен flash, но отключен javascript, увидят только альтернативное содержимое
    • использование параметра wmode может привести к некотрым ошибкам работы flash (например, при wmode="transparent" нельзя ввести кириллические символы в поля ввода), используйте его только когда это действительно необходимо + хорошо потом тестируйте функциональность flash-объекта
    • в предыдущей версии метода использовалось значение transparent параметра wmode, от него пришлось отказаться, т.к. обработка прозрачности ведет к снижению производительности браузера
    • проект SWFObject (есть документация, описание api)
    Решение с использованием javascript библиотеки SWFObject 2

    update 16.03.2010 Александр Головко

    Еще один вариант динамической вставки объекта реализуется вызовом функции embedSWF.

    Для этого подключаем библиотеку, скачать которую можно на странице проекта SWFObject в Google Code:

    Как и в предыдущем варианте, создаем HTML контейнер для flash с альтернативным содержимым:

    Установить свежую версию Flash

    При динамической вставке пишем скрипт, который вызывает функцию swfobject.embedSWF и передает ей параметры вставки flash-объекта. Это может выглядеть, например, так (демонстрационный пример взят из официальной документации):

    var flashvars = {}; flashvars.name1 = "hello"; flashvars.name2 = "world"; flashvars.name3 = "foobar"; var params = {}; params.menu = "false"; var attributes = {}; attributes.id = "myDynamicContent"; attributes.name = "myDynamicContent"; swfobject.embedSWF("myContent.swf", "myContent", "300", "120", "9.0.0","expressInstall.swf", flashvars, params, attributes);

    Параметры и атрибуты вставки flash на страницу

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

  • параметры непосредственно скрипта;
  • список элементов params вложенных в object.
  • атрибуты элемента object;
  • Список параметров непосредственно скрипта

    Это собственно аргументы функции swfobject.embedSWF()

    Имя параметра Тип параметра Описание параметра swfUrl id width height version expressInstallSwfurl flashvars params attributes callbackFn
    String, обязательный URL SWF файла
    String, обязательный id HTML элемента (содержащего альтернативный контент) который должен быть заменен на Flash контент
    String, обязательный ширина SWF
    String, обязательный высота SWF
    String, обязательный версия Flash плеера необходимого для данного SWF (формат: "major.minor.release")
    String, необязательный задает URL для express install SWF и активирует Adobe express install. Обратите внимание, что express install срабатывает только один раз (при первом выполнении), требует Flash плеер версии 6.0.65 или старше на Win или Mac платформах. Минимально возможный размер SWF для его работы 310x137px.
    Object, необязательный переменные передаваемые Flash в виде пар имя:значение
    Object, необязательный элементы params вложенные в object в виде пар имя:значение
    Object, необязательный атрибуты элемента object в виде пар имя:значение
    JavaScript функция, необязательный может быть использована для определения функции обратного вызова, оповещая об успешном или неуспешном внедрении файла SWF

    Параметры перечисляются через запятую. Необязательные параметры можно пропускать, заменяя значением false. При этом замыкающие false можно не указывать. Например вместо:

    Swfobject.embedSWF("myContent.swf", "myContent", "300", "120", "9.0.0", "false", flashvars, "false", "false", "false");

    пишем просто:

    Swfobject.embedSWF("myContent.swf", "myContent", "300", "120", "9.0.0", "false", flashvars);

    Параметры flashvars, params и attributes являются JavaScript объектами, их можно пропустить не только вышеуказанным методом, но и передав пустой объект:{}.

    params

    Var params = {}; params.menu = "false"

    Для управления прозрачностью, часто применяется параметр wmode, для управления качеством — quality.

    Var params = {}; params.menu = "false"; params.wmode = "transparent"; params.quality = "high";

    attributes

    Это те атрибуты, которые в нашем примере выглядят вот так:

    Var attributes = {}; attributes.id = "myDynamicContent"; attributes.name = "myDynamicContent";

    Для flashvars, params и attributes существует сокращенный вариант записи, в одну строку, без создания дополнительных переменных, например так:

    swfobject.embedSWF("myContent.swf", "myContent", "300", "120", "9.0.0","expressInstall.swf", {}, {}, {id:"myDynamicContent",name:"myDynamicContent"});

    Теперь посмотрим еще раз на демонстрационный пример, который, надеюсь, уже стал значительно понятнее. Для удобства параметры записаны одной строкой.

    swfobject.embedSWF("myContent.swf", "myContent", "300", "120", "9.0.0","expressInstall.swf", {name1:"hello",name2:"world",name3:"foobar"}, {menu:"false"}, {id:"myDynamicContent",name:"myDynamicContent"});

    Тут всего-навсего написано: «Флешку из файла myContent.swf вставить в HTML элемент c id="myContent". Ширина флеша 300px, высота 120px. Требуемая версия Flash плеера 9.0.0. Для установки плеера при его отсутствии используем файл expressInstall.swf. В флеш передаем три переменных name1="hello" name2="world", name3="foobar". Отображаем меню, которое содержит только настройки и опции Flash. Созданному тегу object присваиваем id="myDynamicContent" и name="myDynamicContent"».

    Немного громоздко, но совсем не страшно, не правда ли?

    Напоследок еще один пример вставки флеша. Чуть более сложный и приближенный к реальности.

    var flashvars = {}; flashvars.categoryChosen="Slots"; flashvars.assets="http://namefosite.net/flash/assets/"; var params = {}; params.menu = "false"; params.wmode = "opaque"; var attributes = {}; attributes.id = "flashBox"; attributes.name = "flashBox"; swfobject.embedSWF("flash/game.swf", "games", "800", "200", "9.0.124", "expressInstall.swf", flashvars, params, attributes);

    "Как правильно вставить объекты Flash в вашу HTML-страницу?"

    Это должно быть простой вопрос, но вероятно вызывает множество споров, так как каждый из доступных способов встраивания объектов имеет свои преимущества и недостатки. В этой статье мы исследуем трудности и тонкости встраивания Flash-содержимого и рассмотрим наиболее популярные способы вставки объектов.

    Основные компоненты метода встраивания Flash-объектов

    Прежде чем перейти к практике, давайте сначала охарактеризуем идеальный метод. По моему мнению, следующие критерии имеют первостепенное значение.

    Соответствие стандартам

    Web-стандарты предлагают универсальный язык для создателей браузеров, проектировщиков оборудования и веб-дизайнеров для того, чтобы они могли избежать проблем совместимости, зависимости от производителей, а также нарушения патентных прав. Кроме того веб-стандарты позволяют создавать правильную HTML-разметку, которая к тому же часто является требованием в веб-проектах.

    Межбраузерная поддержка

    Поддержка всеми основными браузерами и популярными операционными системами — это необходимое условие. Проверить разметку можно с помощью инструментария Flash embed test suite , который позволяет оценить, поддерживают ли браузеры тот или иной метод разметки, с помощью которой можно вставить Flash-объекты. Этот набор тестов может показать информацию о параметрах, в том числе различных настройках Flash, потоках и сценариях, поддерживаемых браузерами и ОС. Вы также можете изучить сводную таблицу, отображающую эти параметры.

    Поддержка альтернативного содержимого

    Во всех случаях, когда вы создаете содержимое, воспринимаемое поисковыми машинами или доступное людям, которые используют Веб без установки каких-либо плагинов, использование альтернативного содержимого — это наилучшее решение.

    Избежание несоответствия между Flash-контентом и версией Flash-плеера

    К сожалению для многих из нас, Flash-контент будет воспроизводиться вне зависимости от версии Flash-плеера, для которого он был создан. В этом нет ничего страшного до того момента, пока устаревший плагин не обнаружит функции, которые работают только в его более поздних версиях. Если так произойдет, ваши посетители увидят "нарушенное" содержимое или вовсе ничего не увидят.

    Автоактивация интерактивного контента

    Браузеры компании Microsoft работают так, что посетители не могут напрямую взаимодействовать с элементами управления Microsoft ActiveX, который позволяет загружать объекты и элементы embed , также называемые "интерактивным контентом".

    Короче говоря, браузеры Microsoft не позволят взаимодействовать с интерактивным контентом, пока пользователь самостоятельно его не активирует. Opera также внедрила похожий механизм "click-to-activate". Этот механизм работает как "лежачий полицейский" на дороге: вы должны приостановить движение, медленно переехать через него, и только потом нажать педаль газа. Это может запутать обычного интернет-серфера и разозлить даже самого опытного.

    Простота реализации

    Конечно же простота имеет значение. Зачем прыгать выше головы, если можно сделать проще?

    Основы встраивания Flash-объектов: embed и object

    Существуют два элемента HTML, которые позволяют вставить объекты Flash на веб-страницу. В одной руке, у нас есть запатентованный элемент embed , который поддерживается большинством браузеров:

    Alternative content

    В другой руке у нас элемент object , который является рекомендацией W3C. Так как спецификации W3C предоставляют больше возможностей для отображения подключаемого контента, со временем появились два различных способа реализации объектов.

    Большинство современных браузеров выбрали стандартом альтернативу тегу embed , используя при этом MIME-тип объекта, чтобы подключить соответствующий плагин для воспроизведения содержимого:

    Alternative content

    Этот метод не привязан к какому-либо определенному браузеру и поэтому это предпочтительная реализация.

    Второй способ реализации создан специально для Internet Explorer на Windows. При этом требуется, чтобы вы определили атрибут classid у объекта, чтобы браузер смог загрузить необходимый элемент управления ActiveX Flash-плеера. Такой способ допустим, но зависим от типа браузера:

    Alternative content

    Замечание : В двух последних примерах кода специально не указан параметр codebase — он часто используется, чтобы уточнить URL инсталлятора Flash на серверах Adobe (браузер может автоматически загрузить его, если он еще не установлен). Однако это запрещено согласно спецификациям, которые ограничивают его доступ только в пределах домена текущего документа, и поэтому этот параметр не поддерживается всеми современными браузерами.

    Почему embed все еще используется

    С появлением веб-стандартов можно было бы совершенно обоснованно удалить элемент embed . Он просто никогда не был рекомендацией W3C и никогда не будет, потому что он уже запатентован. Однако в действительности этот способ лучше поддерживается браузерами, чем отдельная реализация элемента object . В результате такой способ реализации выбран на большинстве веб-сайтов, таких как Google Video и Brightcove.

    Хотя веб-стандарты созданы, чтобы избежать проблем совместимости, элемент embed более ясен и недвусмыслен, чем элемент object , одобренный W3C. Жесткие правила реализации элемента embed и хорошая поддержка превратила его в фактический стандарт, который будет использоваться до тех пор, пока не будет универсальной поддержки элемента object , достаточной для того, чтобы игнорировать версии браузеров, которые его не поддерживают.

    Где нарушена поддержка веб-стандартов

    Двойственная реализация элемента object формально не нарушает веб-стандарты, но создает множество проблем. Следовательно, нам нужно найти способ объединить два метода реализации объектов в один. Еще хуже то, что мы также должны разобраться с браузерами, которые имеют (или раньше имели) неправильную реализацию объектов. Давайте рассмотрим эти проблемы:

    • Общая реализация объектов не работает в Internet Explorer на Windows. IE загружает плагин и SWF-файл, но не показывает его содержимое.
    • Когда мы частично объединяем два способа реализации добавлением параметра movie к общей реализации, Internet Explorer отображает Flash-контент, но не проигрывает его.
    • Если мы полностью соединим две реализации, все заработает в Internet Explorer, но браузеры на базе Gecko проигнорируют Flash-контент и покажут альтернативное содержимое.

    Одной из особенностей элемента object является то, что вы можете вставлять этот тег друг в друга:

    Alternative content

    К сожалению, из-за ошибки в старых версиях Internet Explorer встроенные друг в друга элементы object рассматриваются так, как будто они следуют один за другим, поэтому отображаются оба элемента.

    Еще хуже то, что браузеры Safari, начиная с версии 1.2.2 для Mac OS 10.3, игнорируют элемент param , встроенный в object , хотя поддерживают такие же атрибуты для элемента embed .

    Замечание : Вы также можете спросить, насколько разумно определять контент, атрибуты и параметры дважды, как в вышеизложенном способе. Этот комбинированный метод также делает более проблематичным использование JavaScript для взаимодействия с Flash-контентом. В таком случае вы должны проверять, с каким объектом вы взаимодействуете.

    Некоторые из ошибок уже исправлены, но необщепринятая и ошибочная в Internet Explorer реализация object все еще сдерживает абсолютное принятие этого элемента. Мы можем только надеяться, что это будет исправлено в ближайшем будущем.

    Почему object лучше, чем embed

    Несмотря на отсутствие поддержки всеми браузерами элемент object все же более предпочтителен, чем элемент embed , потому что кроме соответствия стандартам, он также обладает превосходной поддержкой альтернативного содержимого.

    Элемент object позволяет встраивать альтернативное содержимое, и это содержимое отображается, если реализация не поддерживается или не установлен плагин. Также альтернативное содержимое доступно поисковым машинам, а это неоспоримый плюс при оптимизации под поисковые запросы.

    Элемент embed поддерживает альтернативное содержимое посредством элемента noembed , но такая реализация работает только в тех браузерах, которые не поддерживают сам элемент embed , например Internet Explorer на платформах Windows Mobile. В отличие от элемента object , embed не поддерживает альтернативное содержимое, когда поддерживается сам элемент embed , но не установлен Flash-плагин. В такой ситуации, можно довольствоваться только атрибутами pluginurl и pluginspage , с помощью которых отображается картинка, кликнув по которой можно установить плагин.

    Я думаю, это лучшее решение для отображения альтернативного контента, чтобы описать необходимый плагин и дать намек на то, что пользователь может загрузить и установить плагин Flash. (Тем не менее, нет других причин, по которым мы должны злоупотреблять атрибутом codebase .)

    Таким образом, элемент object обладает значительными преимуществами перед элементом embed в том случае, если вы предпочитаете создавать соответствующий стандартам код или доступное, хорошо индексируемое поисковиками содержимое.

    Недостаточность методов разметки

    Принимая во внимание критерии, определенные нами ранее, — соответствие стандартам, межбраузерную поддержку, поддержку альтернативного содержимого, избежание несоответствий плейер/контент, автоконтроль интерактивного содержимого и простоту реализации — легко понять, что в действительности используются лишь те способы реализации, которые могут быть осуществлены только изменением разметки.

    Хотя разметка предоставляет средства показа Flash-контента или альтернативного содержимого, она не способна решить проблемы несоответствия контента и плагина Flash или ошибки при активизации интерактивного контента, и это не всегда самый простой способ решить и ту, и другую проблему.

    Однако, давайте сделаем краткий обзор наиболее популярных "комбинированных" методов встранивания Flash, осуществляемых с помощью (X)HTML-разметки.

    Двусоставный метод

    В Flash IDE, вы можете создавать HTML-страницы с помощью так называемого двусоставного метода, объединяющего реализацию объектов с помощью элемента object и embed , встроенного внутри него как альтернативный контент:

    Как видите, этот метод основан исключительно на запатентованной разметке. Он несомненно фокусируется на межбраузерной поддержке, но не соответствует стандартам.

    Двусоставный метод использует избыточный код, делает ваши веб-страницы логически непоследовательными и не позволяет вставить альтернативное содержимое. А единственная преимущество — это простота в использовании, так как его генерирует Flash IDE: так что не пытайтесь просить воспроизвести этот метод по памяти.

    Метод вложенных объектов

    Вложение двух реализаций объектов — хорошая альтернатива двусоставному методу, потому что этот метод соответствует стандартам и поддерживает альтернативный контент:

    Alternative content

    К сожалению, в этом методе отсутствует межбраузерная поддержка вследствие ошибки вложения элементов object в IE и отсутствия поддержки вложенных элементов param в Safari. Но можно использовать прием с условными комментариями IE, чтобы избежать ошибок браузера:

    -->

    Alternative content

    -->

    При использовании приведенного выше "раздутого" кода, этот метод становится даже более сложным для создателя, чем двусоставный. Он использует безобразные уловки, которые могут усложнить процесс создания кода при использовании серверных языков.

    Flash Satay

    Другая альтернатива — это метод Flash Satay , который основан на общем способе реализации объектов и включает дополнительный параметр movie . Этот параметр необходим, чтобы избежать ошибок отображения контента в IE. Он также включает movie-контейнер Flash (c.swf с переменной path), чтобы исправить ошибку с потоковым воспроизведением в IE:

    Alternative content

    Хотя он приближает нас к "идеальному", универсальному способу реализации объектов, Flash Satay содержит приемы, применение которых не подойдет каждому? и при использовании этого метода встроенные элементы param не поддерживаются старыми версиями Safari.

    Аргументы в пользу DOM

    Когда вы думаете о недостаточности методов разметки, вы можете поинтересоваться, почему нельзя использовать скрипты DOM. С помощью них, мы можем динамически управлять разметкой, как того требует каждый браузер, используя:

    • специальную реализацию для IE;
    • запатентованный элемент embed для старых версий Safari;
    • общую реализацию для всех остальных браузеров.

    Скрипт DOM к тому же гибкий инструмент, достаточный для решения остальных проблем: прежде всего, мы можем использовать его для решения проблемы несовместимости Flash-плейера и Flash-контента, определяя версию плагина и проверяя то, что нужно показывать — Flash-контент или альтернативное содержимое. Когда необходимая версия плагина недоступна, мы можем инициировать экспресс-установку Adobe, — механизм встроенный в Flash-плейер. Тем самым мы упрощаем загрузку нужной версии.

    Решение с применением DOM также позволяет нам избежать механизма "click-to-activate" с помощью динамического создания элементов object .

    Будьте осторожны, используя JavaScript

    Так как не каждый является опытным специалистом по JavaScript — да и даже тот, кто им является, не должен заново изобретать велосипед — неплохо использовать уже существующие библиотеки JavaScript для встраивания Flash. Давайте рассмотрим критерии выбора надежной библиотеки.

    Разметка по стандартам редко поддерживается создателями библиотек, так как эти библиотеки определяют Flash-контент либо в JavaScript, либо другими средствами разработки. Большинство библиотек создают неправильный HTML и, так как разметка написана динамически, W3C-валидатор не способен её проверить.

    С другой стороны нужно рассмотреть, как работает такой метод, если JavaScript не доступен, не поддерживается или поддерживается только отчасти. Что делать, если используя JavaScript, вы ограничиваете доступность контента для пользователей?

    Приняв во внимание вышесказанное, давайте посмотрим, как работают некоторые популярные библиотеки.

    Комплект по определению плейера Adobe Flash

    Кроме создания разметки в Flash IDE, Adobe также предоставляет комплект по определению плейера Flash . Существует три способа использовать этот комплект:

  • Проверив установлен или нет флажок Detect Flash Version (в меню File > Publish Settings > HTML) в Flash 8 IDE.
  • Вставив его вручную, загрузив дистрибутив этой библиотеки.
  • Работать в Flex Builder 2, где он включен по умолчанию.
  • Хотя пакет дает нам все желаемые возможности, такие как определение версии, экспресс-установка и автоактивация интерактивного контента, он нуждается в усовершенствовании. Когда мы полностью перейдем к стандартам, его ждет безнадежный провал: пока что он основан на двусоставной разметке, так как имеет либо реализацию объектов от Microsoft, либо поддержку запатентованного элемента embed , не соответствующего стандартам.

    Он также поддерживает альтернативный контент, хотя странным и противоречивым образом. Вы должны определить альтернативный контент дважды : в JavaScript и в элементе noscript .

    В конечном счете, комплект по определению плейера нуждается в лучшей реализации.

    UFO и SWF Object

    Популярные альтернативы с открытым исходным кодом, как UFO Боба ван дер Слуиса и SWF Object Джеффа Стирнса наверное самые полные и простые в использовании библиотеки, доступные в настоящее время.

    Хотя на первый взгляд они кажутся похожими, они полностью отличаются внутренним содержанием. Например, SWF Object использует двусоставный метод Adobe, в то время как UFO генерирует главным образом соответствующую стандартам разметку. С другой стороны они используют общие архитектурные принципы: обе библиотеки построены на идее создания разметки, поддерживающей альтернативное содержимое (таким образом доступное и оптимизированное под поисковики), которое замещается DOM-скриптом, когда доступна необходимая поддержка Flash и JavaScript.

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

    Аргументы в пользу "умеренного" программирования DOM

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

    Будущее встраивания Flash

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

    Статья основана на оригинальной статье online-журнала A List Arart