Как сделать Flash ролик с прозрачным фоном
На этой странице Adobe предлагается добавить параметр «wmode» и установить для него значение «transparent»: http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_1420
В IE это работает безупречно. Фон отображается правильно в Firefox и Safari, однако, как только вы используете полосу прокрутки браузера и наведите указатель мыши на элемент управления Flash, вы должны щелкнуть один раз, чтобы активировать элемент управления. Вы можете увидеть это поведение, если попытаетесь нажать кнопку воспроизведения в примере Adobe.
Кто-нибудь знает способ обойти это?
Ответов (5)5
Вы знаете, что можете установить цвет фона при встраивании?
Следующие атрибуты являются необязательными при определении тегов объекта и / или встраивания. Для объекта все атрибуты определены в тегах param, если не указано иное:
bgcolor - [шестнадцатеричное значение RGB] в формате #RRGGBB. Задает цвет фона фильма. Используйте этот атрибут, чтобы переопределить настройку цвета фона, указанную в файле Flash. Этот атрибут не влияет на цвет фона HTML-страницы.
Вырезать и вставить из http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_12701&sliceId=1
Включение безоконного режима (wmode =) заставляет встроенную вспышку действовать и визуализировать так же, как и другие элементы. Без этого он отображается на отдельном этапе и просто накладывается на окно браузера.
Может ли элемент вспышки терять фокус? Похоже, что фокус ввода перемещен на полосу прокрутки, а затем вам нужно переместить его обратно.
Также вам не было ясно, была ли проблема с фокусом только в FF или также в IE.
С другой стороны; установка прозрачного режима wmode имеет несколько недостатков. Например, он может прервать прокрутку (вспышка остается на том же месте, не обращая внимания на прокрутку) в некоторых старых версиях Firefox (до 2.0). У меня также были проблемы с комбинациями клавиш ALT в текстовых полях, которые не работают, когда wmode прозрачен.
Кроме того, если вам нужно разместить html-контент над flash-контентом (в общем, это не очень хорошая идея, но есть случаи, когда это полезно), wmode = transparent - это то, что вам нужно.
Потратив на это еще немного времени, я согласен с @grapefrukt. Установка прозрачного режима wmode приводит ко всевозможным странным проблемам, и, на мой взгляд, этого следует избегать.
Вместо этого я прибег к передаче цвета фона в качестве параметра. Я использую следующий код ActionScript для рисования фона.
var parameters:Object = LoaderInfo(this.root.loaderInfo).parameters;
opaqueBackground = parameters["background-color"];
РЕДАКТИРОВАТЬ: Спасибо @grapefrukt за напоминание мне о параметре bgcolor (что делает ActionScript выше совершенно ненужным)