Как заставить flash player отображаться под контент на ПК? - PullRequest
1 голос
/ 05 марта 2010

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

Все отлично работает на версиях Mac всех основных браузеров, но запуск просмотр на ПК, и все чертовски рвется, когда вы начинаете пытаться отображать контент через Flash Video встраивает .Элемент flash остается видимым над содержимым.Это совершенно непригодно для использования.

С ПК вы можете посмотреть пример проблемы здесь: http://photorific.tumblr.com

Я почти уверен, что это ошибка в Flash Plugin для Windows, ноМне было интересно, сталкивался ли кто-нибудь еще с этой проблемой раньше, и были ли какие-либо решения.

Эта проблема возникла некоторое время назад, и любая помощь будет очень, очень, очень признательна!

Ответы [ 3 ]

3 голосов
/ 15 марта 2010

Это известная ошибка во Flash Player в Windows. По сути, он игнорирует любую форму z-индекса или предполагает, что флэш-объект имеет z-индекс: + INFINITY. В любом случае, есть два исправления. Как указывалось ранее, вы можете использовать параметр wmode = transparent, но это позволит другому контенту проходить через флэш-ролик. Другой вариант - использовать прокладку IFRAME между фильмом Flash и любым содержимым, которое вы хотите отобразить поверх фильма Flash.

MooTools имеет плагин IframeShim , который может сделать это автоматически. Я был бы удивлен, если бы не было эквивалентной функции, доступной для jquery.

2 голосов
/ 05 марта 2010

Попробуйте добавить wmode = "transparent" в тег объекта для содержимого Flash.

1 голос
/ 15 марта 2010

Спасибо за ответы. @ Марк, приятно знать, что я не схожу с ума.

Я обнаружил, что установка свойства режима окна, которое Tumblr не делает изначально при выводе видеокода, работала нормально .... но это должно было быть opaque вместо transparent.

Работая с необработанной видео строкой (<object><params /><embed /></object>), вот решение, которое я придумала, которое идеально подходит для меня:

/*  Add wmode = opaque
-------------------------------------------------------*/
if( ! player.match(/name="wmode"/))
    player = player.replace(/<param/, '<param name="wmode" value="opaque" /><param');

if( ! player.match(/wmode="(transparent|opaque)"/))
    player = player.replace(/\/><\/object>/, 'wmode="opaque" /></object>');

player = player.replace('wmode="transparent"', 'wmode="opaque"');
player = player.replace('name="wmode" value="transparent"', 'name="wmode" value="opaque"');

Теперь флеш-видео на окнах хорошо сидит за желаемыми элементами div .... до тех пор, пока включен javascript.

Еще раз спасибо за все ваши ответы.

...