Как сделать Flash ролик с прозрачным фоном

На этой странице Adobe предлагается добавить параметр «wmode» и установить для него значение «transparent»: http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_1420

В IE это работает безупречно. Фон отображается правильно в Firefox и Safari, однако, как только вы используете полосу прокрутки браузера и наведите указатель мыши на элемент управления Flash, вы должны щелкнуть один раз, чтобы активировать элемент управления. Вы можете увидеть это поведение, если попытаетесь нажать кнопку воспроизведения в примере Adobe.

Кто-нибудь знает способ обойти это?

Ответов (5)

Решение

Вы знаете, что можете установить цвет фона при встраивании?

Следующие атрибуты являются необязательными при определении тегов объекта и / или встраивания. Для объекта все атрибуты определены в тегах param, если не указано иное:

bgcolor - [шестнадцатеричное значение RGB] в формате #RRGGBB. Задает цвет фона фильма. Используйте этот атрибут, чтобы переопределить настройку цвета фона, указанную в файле Flash. Этот атрибут не влияет на цвет фона HTML-страницы.

Вырезать и вставить из http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_12701&sliceId=1

Пример Adobe «работает» в Firefox 3.0.1 в том смысле, что фон прозрачный. Однако в Firefox 3.0.1 и Safari 3.1.2 вы должны дважды нажать кнопку воспроизведения, чтобы увидеть анимацию.

Включение безоконного режима (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 выше совершенно ненужным)