CSS-меню не отображается поверх Flash
-
22-08-2019 - |
Вопрос
У меня есть раскрывающееся/многоуровневое меню CSS на странице.Однако меню не отображается на имеющейся у меня флеш-карте. Кажется, что очевидным решением является установка wmode:transparent (или непрозрачного), но у меня это не работает. Я также пытался установить очень высокие значения z-уровня в CSS (2000), но это тоже не сработало.
Кроме того, я использую open-flash-chart-v2 для создания диаграммы.(хотя я не думаю, что это имеет значение, но это ограничивает мои возможности передавать переменные, поскольку я не использую тег внедрения или тег объекта напрямую).
<script type="text/javascript">
swfobject.embedSWF("/ofc-library/open-flash-chart.swf", "chart", "100%", "100%", "9.0.0", "expressInstall.swf", {"wmode" : "transparent"});
</script>
Страница с проблемой (В настоящее время здесь не отображается попытка исправления z-index.)
Решение
Тег wmode установлен неправильно.
Вот правильный код:
<object width="100%" height="100%" style="visibility: visible;" id="chart" data="/ofc-library/open-flash-chart.swf" type="application/x-shockwave-flash"><param value="transparent" name="wmode"/></object>
Вот ваш код:
<object width="100%" height="100%" type="application/x-shockwave-flash" data="/ofc-library/open-flash-chart.swf" id="chart" style="visibility: visible;"><param name="flashvars" value="wmode=transparent"/></object>
Конкретно:
<param name="flashvars" value="wmode=transparent"/>
должно быть:
<param value="transparent" name="wmode"/>
Вот как это сделать правильно (обратите внимание на пустой хеш перед параметрами.wmode — это параметр, а не flashvar):
swfobject.embedSWF("/ofc-library/open-flash-chart.swf", "chart", "100%", "100%", "9.0.0", "expressInstall.swf", {}, {"wmode" : "transparent"})
Другие советы
Поскольку вы используете swfObject, попробуйте следующее:
var so = new SWFObject("/ofc-library/open-flash-chart.swf", "chart", "100%", "100%", "9.0.0", "expressInstall.swf");
so.addParam("wmode", "transparent");
so.write("flashcontent");