#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.