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

Только готовые уроки по использованию ВКонтакте API. Flash + PHP + API. НЕ IFrame!

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

Сообщение Александр » 08 янв 2012, 16:55

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 не было проблем в проверяемых ситуациях, это не самый лучший браузер :)
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
 
Автор темы
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45
Откуда: Санкт-Петербург
Благодарил (а): 126 раз.
Поблагодарили: 771 раз.

Чтобы убрать блок с рекламой, зарегистрируйтесь на форуме или войдите.

Google
 



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

Сообщение turikhay » 08 янв 2012, 17:03

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

а вот в IE 9 разработчики реально переписали достаточно большую часть кода, он стал лучше на глазах. посмотрим на IE10, сохранится ли эта динамика.

За это сообщение автора turikhay поблагодарил:
Александр
turikhay

 
Сообщения: 26
Зарегистрирован: 01 фев 2011, 15:50
Благодарил (а): 5 раз.
Поблагодарили: 1 раз.

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

Сообщение gpv123 » 24 фев 2012, 19:03

Не знаю насчет других браузеров, но в Chrome 17 в параметре "opaque" не работают события Event.ACTIVATE, Event.DEACTIVATE. В "window" все норм.
gpv123

 
Сообщения: 346
Зарегистрирован: 29 янв 2012, 20:57
Благодарил (а): 17 раз.
Поблагодарили: 73 раз.

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

Сообщение gpv123 » 21 июн 2012, 18:43

Решил протестить 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:
+- Видно "Поиск", но не видно тени из-за приложения.
+ Корректно отображается окно чата.

За это сообщение автора gpv123 поблагодарили - 2:
Александр, sanych_dv
gpv123

 
Сообщения: 346
Зарегистрирован: 29 янв 2012, 20:57
Благодарил (а): 17 раз.
Поблагодарили: 73 раз.

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

Сообщение sanych_dv » 21 июн 2012, 22:49

  1.  
  2.  <script src="swfobject.js" type="text/javascript"></script>
  3. <script src="http://code.jquery.com/jquery-latest.js"></script>
  4. <script type="text/javascript">
  5.  
  6. var _wmode;
  7.  
  8. if( $.browser.opera ){
  9.  _wmode = "window";
  10. } else {
  11.  _wmode = "opaque";
  12. }
  13.  
  14. 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'});
  15.  
  16. </script>
  17.  
sanych_dv
Разработчик
Разработчик
 
Сообщения: 550
Зарегистрирован: 29 апр 2011, 01:52
Благодарил (а): 1 раз.
Поблагодарили: 77 раз.


Вернуться в Уроки по использованию ВКонтакте API



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0