Flash-параметр wmode: opaque, window, direct - что выбрать?

Только готовые уроки по использованию ВКонтакте API. Flash + PHP + API. НЕ IFrame!
Ответить
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Flash-параметр wmode: opaque, window, direct - что выбрать?

Сообщение Александр »

Flash-параметр wmode: opaque, window, direct - что выбрать?

Flash-параметр wmode:
opaque — не перекрывает уведомления и окна.
При использовании режима opaque приложение отображается внутри страницы не перекрывая окна чата и уведомлений, однако в приложении могут наблюдаться проблемы с вводом кириллического текста.

window — перекрывает уведомления и окна (не рекомендуется).
При использовании режима window приложение отображается поверх всех элементов, перекрывая собой окна чата и уведомления.

direct — использует аппаратное ускорение (рекомендуется только для 3D-графики).
Режим direct обеспечивает максимальную производительность видео и трёхмерной графики, но во многих браузерах приложение может перекрывать окна чата и уведомлений. Используйте его только в случае необходимости.


Эти параметры влияют на прозрачность wmode. Если хотите узнать об этом больше, то поищите информацию в интернете "wmode transparent".

Если вы сделали Flash-приложение с 3D графикой, то логично будет выбрать direct (использует аппаратное ускорение).
Но какой параметр выбрать для приложения без 3D-графики?

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


Что происходит на практике

Я провел тестирование поведения приложения с полем для ввода в разных браузерах, с разными параметрами wmode.

opaque

Chrome 16
+ Корректно вводится латиница и кириллица.
+ Окно приглашения друзей в приложение открывается корректно.
+ «Поиск» открывается корректно.
+ Окно чата отображается корректно.

FireFox 9
+- Корректно вводится латиница. Кириллица вводится, но у меня после ввода 2-3 кириллических символов, браузер зависает и появляется ошибка «Произошёл крах плагина Adobe Flash. Отправить сообщение о падении.»
+ Окно приглашения друзей в приложение открывается корректно.
+ «Поиск» открывается корректно.
+ Окно чата отображается корректно.

Opera 11.60
+- Корректно вводится латиница. Раскладка не переключается, но можно вставить кириллический текст в поле из буфера.
+ Окно приглашения друзей в приложение открывается корректно.
+ «Поиск» открывается корректно.
+ Окно чата отображается корректно.

Safari 5.1.2
- В поле ввода не ввести никакой символ. Но можно вставить из буфера латиницу и кириллицу.
+ Окно приглашения друзей в приложение открывается корректно.
+ «Поиск» открывается корректно.
+ Окно чата отображается корректно.


IE 9
+ Корректно вводится латиница и кириллица.
+ Окно приглашения друзей в приложение открывается корректно.
+ «Поиск» открывается корректно.
+ Окно чата отображается корректно.


Итог: При установке параметра opaque, тщательно протестируйте поля ввода текста в браузерах FireFox, Opera, Safari.


window

Chrome 16
+ Корректно вводится латиница и кириллица.
+ Окно приглашения друзей в приложение открывается корректно, при этом скрывается само Flash-приложение.
- Всплывающая часть «Поиска» перекрыта Flash-приложением.
- Окно чата полностью скрывается под приложением.


FireFox 9
+ Корректно вводится латиница и кириллица.
+ Окно приглашения друзей в приложение открывается корректно, при этом скрывается само Flash-приложение.
+- Всплывающая часть «Поиска» отображается поверх Flash-приложения, за исключением тени.
- Окно чата почти полностью скрывается под приложением, за исключением текстового поля для фильтра друзей.


Opera 11.60
+ Корректно вводится латиница и кириллица.
+ Окно приглашения друзей в приложение открывается корректно, при этом скрывается само Flash-приложение.
+- Всплывающая часть «Поиска» отображается поверх Flash-приложения, за исключением тени.
+ Окно чата отображается корректно.


Safari 5.1.2
+ Корректно вводится латиница и кириллица.
+ Окно приглашения друзей в приложение открывается корректно, при этом скрывается само Flash-приложение.
- Всплывающая часть «Поиска» перекрыта Flash-приложением.
- Окно чата полностью скрывается под приложением.


IE 9
+ Корректно вводится латиница и кириллица.
+ Окно приглашения друзей в приложение открывается корректно, при этом скрывается само Flash-приложение.
+ Всплывающая часть «Поиска» отображается корректно.
+ Окно чата отображается корректно.

Итог: При установке параметра window, тщательно протестируйте всплывающие окна интерфейса ВКонтакте в браузерах Chrome, FireFox, Opera, Safari.

Может быть вы знаете обход каких-то проблем при установке параметра opaque?

P.S. Несмотря на то что в IE9 не было проблем в проверяемых ситуациях, это не самый лучший браузер :)
turikhay
Сообщения: 26
Зарегистрирован: 01 фев 2011, 15:50

Re: Flash-параметр wmode: opaque, window, direct - что выбрать?

Сообщение turikhay »

за статью спасибо, учту на будущее. :)
только вот есть опечатка - Crome 16 (Chrome 16?)

а вот в IE 9 разработчики реально переписали достаточно большую часть кода, он стал лучше на глазах. посмотрим на IE10, сохранится ли эта динамика.
gpv123
Сообщения: 346
Зарегистрирован: 29 янв 2012, 20:57

Re: Flash-параметр wmode: opaque, window, direct - что выбрать?

Сообщение gpv123 »

Не знаю насчет других браузеров, но в Chrome 17 в параметре "opaque" не работают события Event.ACTIVATE, Event.DEACTIVATE. В "window" все норм.
gpv123
Сообщения: 346
Зарегистрирован: 29 янв 2012, 20:57

Re: Flash-параметр wmode: opaque, window, direct - что выбрать?

Сообщение gpv123 »

Решил протестить opaque и window с новыми версиями браузеров. Критериев немного больше.

Параметр opaque

Во всех браузерах:
+ Корректно открывается окно приглашения друзей в приложение.
+ Корректно открывается "Поиск".
+ Корректно отображается окно чата.
- Не срабатывают события Event.ACTIVATE и Event.DEACTIVATE.

Chrome 19:
+= Корректно вводится латиница и кириллица, раскладка меняется только через систему (у меня Alt+Shift), но не через дополнительные программы (например, Punto Switcher).
+ Не теряется состояние мыши при выходе за пределы приложения.

Firefox 13:
+ Корректно вводится латиница и кириллица, корректно меняется раскладка.
- Теряется состояние мыши при выходе за пределы приложения.

Opera 12:
-+ Корректно вводится только латиница, раскладка не переключается.
- Теряется состояние мыши при выходе за пределы приложения.


Internet Explorer 9:
+ Корректно вводится латиница и кириллица, корректно меняется раскладка.
+ Не теряется состояние мыши при выходе за пределы приложения.

Safari 5.1.7:
- Не вводится текст вообще, о раскладке молчу.
- Теряется состояние мыши при выходе за пределы приложения.



Параметр window

Во всех браузерах:
+ Корректно вводится латиница и кириллица, корректно меняется раскладка.
+= Корректно открывается окно приглашения друзей в приложение, но скрывается само приложение.
+ Работают события Event.ACTIVATE и Event.DEACTIVATE.
+ Не теряется состояние мыши при выходе за пределы приложения.

Chrome 19, Internet Explorer 9, Safari 5.1.7:
- Не видно "Поиск" из-за приложения.
- Не видно окно чата из-за приложения.


Firefox 13:
+- Видно "Поиск", но не видно тени из-за приложения.
- Не видно окно чата из-за приложения.

Opera 12:
+- Видно "Поиск", но не видно тени из-за приложения.
+ Корректно отображается окно чата.
sanych_dv
Разработчик
Разработчик
Сообщения: 550
Зарегистрирован: 29 апр 2011, 01:52

Re: Flash-параметр wmode: opaque, window, direct - что выбрать?

Сообщение sanych_dv »

Код: Выделить всё

  <script src="swfobject.js" type="text/javascript"></script><script src="http://code.jquery.com/jquery-latest.js"></script><script type="text/javascript"> var _wmode; if( $.browser.opera ){ _wmode = "window";} else { _wmode = "opaque";} swfobject.embedSWF("myapp.swf?nocache=123456789", "flashContent", "800", "660", "10.1.0", "expressInstall.swf", null, {quality:'high', scale:'showall', allowscriptaccess:'always', allownetworking:'all', wmode: _wmode, flashvars: '' }, {style:'display:block;margin:auto;', id:'myapp', name:'myapp'});  </script> 
Ответить