Как многие знают, чтобы поместить нечто (выпадающее меню, блок текста и т.д.) поверх flash внутри html-страницы, нужно использовать атрибут/параметр wmode тэга object/embed -- после этого становится возможным управление глубиной флэш-клипа путем его вложения в div-контейнер и присвоения последнему значений глубины и абсолютного позиционирования.
wmode
Однако существует два недоразумения по этому поводу:
transparent
wmode="opaque"
Подводя итог: атрибут wmode дает возможность разместить html-блок (div, javascript-меню и т.д.) над flash-объектом, И ЭТО РАБОТАЕТ ВЕЗДЕ, достаточно только использовать значение opaque параметра "wmode":
opaque
<div style="position:absolute; z-index:1"> <object ... > <param name="wmode" value="opaque"> <embed src="swf/gallery.swf" ... wmode="opaque" /> </object> </div> <div style="position:absolute; z-index:2"> Я ДивНомерДва, хочу закрыть собой ваш флєщъ </div>
И это ОЧЕНЬ полезно, когда вы хотите прикрыть свой флэш хоть чем-нибудь во всех-всех-всех браузерах мира!
Отлично! Если накрыть флеш дивом, то контекстное меню не будет выскакивать!
А как бы сделать наоборот? Нужен частично-прозрачный флэш (wmode=transparent), распологающийся поверх всего, в том числе и других флэшей.
и чем вас контекстное меню не устраивает?
Т.е. можно прикрывать флэш например прозрачным гифом. Хотя это из той же истории, если блокировать правую кнопку мышки на странице.
полезно! спасибо
P.s. почему до сих пор нет новости про Flex 2 beta?
обновляем новости любой ценой :))
Никита, новости не было потому, что я еще не научился публиковать новости во сне, то есть в период с восьми утра до часу дня. Ну и опять же -- не Флэксом единым жив человек, как справелдиво замечает Артем Мельников ;-)
Кстати, она уже етсь )
не у всех же последние версии браузеров
вот например под Opera 7.23, которая у меня, это не работает
Кстати, а ведь новая (8.5) Опера совершенно бесплатна, в отличие от своих предшественников, так что почему бы не обновить ее?
Впрочем, когда у меня снова появится свободное время я еще поэкспериментрую с этим.
У меня такое ощущение что зависит от версии Флэш плеера - у меня в Эскплорере и Опере див перекрывал флэш без всяких ухищрений (в Эксплорере версия плеера 8 в Опере версия плеера 7) при wmode=transparent, в Mozilla Firefox версия плеера была 5 и в нем див не перекрывал флэшку. Пытался воспользоваться советами - ничего не вышло. Скорее всего сама Macromedia исправила это по крайней мере в 7 версии плеера а возможно даже в 6.
Ну вот, методом научного тыка нашел что начиная с версии Flash Player 6.0.65 проблема с перекрытием дива флэшки в Мозилле исчезла
Кстати, статистика одного из моих посещаемых проектов говорит о том, что пятой версией проигрывателя пользуются порядка 2 процентов, так что на проблему можно забить.
Нет, далеко не во всех. :( К сожалению!
подобные конструкции чреватый проблемами с русскими шрифтами в input text field, по крайней мере в IE
Я с этим сталкивался не раз и как решить проблему до сих пор не знаю. Только разве клип делать невидимым!
Если вы используете TextField как поле для ввода пользователем текста, то указание в HTML-тегах флэша свойства wmode cо значением opaque или transparent приводит к тому, что в браузере IE каждый набираемый на клавиатуре символ отображается в текстовом поле в виде 2 символов (бага с распознаванием unicode), а в Firefox и того хуже - он не меняет раскладку клавиатуры и всегда выводит "на английском". Те, кто работал с флэшом менее пары лет не знает, что Flash имеет такое количество багов переносимых от версии к версии, что их по пальцам не пересчитать. Описанный выше баг тянется аж до 9 версии!!! В более ранних версиях он так же присутствует. Смешно то, что обо всём этом уже неоднократно писали в интернете, но Macromedia, видимо это ничуть не беспокоит, хотя и других багов тянущихся от версии к версии тьма. Например, вставка HTML-форматированного текста в том же самом TextField зачастую приводит к непредсказуемым последствиям, особенно это касается изображений. Попробуйте поместить тег img внутри непрерывного произвольного текста и ужаснитесь полученному результату в любой версии флэша вплоть до 9. А ещё попробуйте абсолютную позицию div в котором находится флэш сместить так чтобы область занимаемая флэшом целиком скрылась за пределами границ окна браузера, в Firefox флэш последних версий больше не сможет нормально взаимодействовать с JavaScript. Можно продолжать ещё очень долго, продукт у Macromedia (Adobe) всегда был недоделанный, именно по-этому я считаю, что флэш "на 50% плох" (даже девятый).
я наберное покажусь совсем глупым, но меня интересует такой вопрос(кто нибудь наверняка знает). КАК РАЗМЕСТИТЬ FLASH РОЛИК НА HTML СТРАНИЦЕ ???
Fedora Core 5 Mozilla 1.7.13 Shockwave Flash 9.0 r31
Указанный пример не работает, flash всегда будет сверху
Здрасти, у меня продолжение проблемы - нужно флеш поместить под текст, но с таким условием, чтобы ссылки во флешке работали при наведении на них... Фигня полная - не знаю, что и делать
Флешка с Z-index = -1 оказывается загороженной текстом в таблице и естесна при наведении ссылки в ней даже не шелохнутся (только Operа их видит). Хоть вырезай эти ссылки в отдельную флешку и ее вешай поверх остальных слоев. Помажите кто знает)
Спасибо, товарищи. Жаль под Linux эта фишка не пашет. Скорблю и плачу.
Здрасти, у меня продолжение проблемы - нужно флеш поместить под текст, но с таким условием, чтобы ссылки во флешке работали при наведении на них... Фигня полная - не знаю, что и делать Флешка с Z-index = -1 оказывается загороженной текстом в таблице и естесна при наведении ссылки в ней даже не шелохнутся (только Operа их видит). Хоть вырезай эти ссылки в отдельную флешку и ее вешай поверх остальных слоев. Помажите кто знает)
попробуй отказаться от таблиц в пользу DOV'ов...
спасибо автору, помогло решить проблемку!
Спасибо за то что ты есть. Идея the best. Три дня мучался. Очень Благодарен.