Автозапуск сценариев Flash в Opera

30.06.2011

В интернет-браузере Opera существует проблема с управлением сценариев ActionScript во Flash и ShockWave. Это никак не отображается на Flash-элементе, который просто выполняет роль анимированной картинки. Однако если при наведении на эту картинку или при клике по этой картинке или по какой либо области этой картинки должны происходить какие нибудь действия, то пользователей интернет-браузера Opera, а особенно программиста этого сайта, заказчик которого пользуется Opera, ждёт разочерование.

Суть проблемы

Суть проблемы заключается в том, что Opera по умолчанию блокирует управление Flash и ShockWave контентом, т.е. ActionScript. Управлять же им можно только кликнув по нему мышкой. В лучшем случае, если это например flash-player или flash-меню пользователю приходится постоянно кликать по 2 раза вместо одного. Но если, как в моём случае, флеш-контент является ссылкой на внутреннюю страницу, и по умолчанию представляет собой статическую картинку, а при наведении на неё мышкой должна анимироваться, то кликнув по ней мышкой пользователи Opera переходят на другую страницу, так и не увидев анимации

Opera так поступает вовсе не от хорошей жизни, а от типа своей проприетарной лецензии, как и у Flash. Лицензия на один клик на Flash и ShockWave стоит несколько миллионов долларов в год. Microsoft и Google её покупают, а Firefox может использовать бесплатно - т.к. Firefox является свободным и бесплатным ПО, в отличие от ранее упомянутых IE, Safari, Chrome и Opera.

Рецепт

Проблема решается довольно просто, применяя скрипт JavaScript AC_RunActiveContent.js для динамической вставки Flash и ShockWave контента.

скачать его можно тут:

Подключается в head скрипт AC_RunActiveContent.js

<script type="text/javascript" src="js/AC_RunActiveContent.js"></script>

После чего Flash выводится кодом:

<script type="text/javascript"> AC_FL_RunContent('width',128,'height',128,'src','at','quality','high','wmode','opaque'); </script>

Где at путь к флешке at.swf БЕЗ расширения (Это единственное неудобство, исправляемое в PHP substr('at.swf',0,-4) )

И самый важный атребут 'wmode','opaque' который и позволяет обойти блокировку Flash в Opera.

И в результате имеем не заблокированный и работоспособный Flash-контент в Opera

Последнее в нашем блоге