Лучший способ встроить Flash для современных браузеров, использующих HTML5?

#css #flash #html

#css #flash #HTML

Вопрос:

Это настолько распространенная вещь, что я полагаю, должен быть «хороший» способ чистого встраивания Flash в HTML5? Меня интересует только поддержка следующих браузеров: FF3, FF4, IE7, IE8, IE9, Chrome и Safari.

Я знаю, что есть некоторые решения Javascript, такие как SWFObject, но это кажется излишеством. Разве нет простого, быстрого способа с использованием HTML?

Дополнительно: есть ли какой-либо недостаток в простом использовании <embed> ? Ранее W3C обесценил его, но, как я понимаю, он вернулся в HTML5. Так почему бы просто не использовать его вместо того, чтобы возиться с <object> ?

Ответ №1:

Пробовал инструменты jQuery?

В принципе, все, что вам нужно сделать, это:

 <div id="clock"></div>

<script>
flashembed("clock", "/media/swf/global/clock.swf");
</script>
  

Рабочим примером может быть:

 <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<script src="http://cdn.jquerytools.org/1.2.7/full/jquery.tools.min.js"></script>

<div id="clock"></div>

<script>
flashembed("clock", "http://jquerytools.org/media/swf/global/clock.swf");
</script>
  

Он работал с jQuery 2.0.3, 1.10.2, 1.9.0.

Комментарии:

1. Я добавил ссылку на скрипт на исходный код jQuery и приведенный выше код на свою страницу (очевидно, с рабочей ссылкой), но ничего не происходит: я просто получаю пустую страницу. Я что-нибудь пропустил?

2. Приведенный выше пример содержит минимальные теги, необходимые для его работы. Сверьте свою страницу с ним.

Ответ №2:

SWFObject был создан для динамической обработки различных способов интерпретации тега object каждым браузером. Я не знаю о каких-либо реальных изменениях в этом сценарии, даже с ie9, который по-прежнему требует активации пользователем объекта active-x.

Я все еще предпочитаю SWFObject за его надежную и простую передачу flash-переменных:

 var flashvars   = {
    filePath:   "somePath",
    verbose:    "true"
};

var params  = {
    quality:    "high",
    wmode:  "opaque",
    menu:   "false",
    base:   "/flash/home_page/"
};

var attributes  = {
    id:     "flashContent"
};


    swfobject.embedSWF(
        "../flash/home_page/home.swf",
        "flashContent",
        "570",
        "325",
        "10.0.0",
        "../frameworks/swfobject/expressInstall.swf",
        flashvars,
        params,
        attributes,
        outputStatus
        );
  

Я согласен, было бы «неплохо», если бы существовала «еще более» облегченная альтернатива, но удобство компенсирует любые дополнительные нагрузки, которые требуются, imo.

приветствия

Комментарии:

1. Что ж, пока не будет лучшего ответа, я выбрал SWFObject.