Flash wmode прозрачный - нажмите позади - PullRequest
0 голосов
/ 17 декабря 2010

Вот ситуация: два абсолютно расположенных слоя, одинаковое положение и размеры.Верхний слой содержит Flash-ролик, охватывающий весь слой, с вложением wmode="transparent". Нижний слой содержит HTML-ссылку, которая в основном видна.

При странном развороте событий IE7 и IE8 отображают страницу, как и ожидалось: Flash-ролик видим и интерактивен с помощью мыши;и ссылка под фильмом частично видна и интерактивна с помощью мыши.В FF3.6 и Chrome 8 ссылка видна, но не активна.

Пример

http://www.powers1.net/flash-test/test2.html

Код

<html>
<head>
<title>test</title>
</head>
<body bgcolor="#eeeeee">
    <div style="position: absolute; top: 0px; left: 0px; z-index: 1; width: 550px; height: 400px; overflow: hidden">
        <p><a href="http://www.google.com">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum</a></p>
    </div>
    <div style="position: absolute; top: 0px; left: 0px; z-index: 2">
    <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0" width="550" height="400" id="test" align="middle">
    <param name="allowScriptAccess" value="sameDomain" />
    <param name="allowFullScreen" value="false" />
    <param name="movie" value="test.swf" /><param name="quality" value="high" /><param name="wmode" value="transparent" /><param name="bgcolor" value="#ffffff" />
    <embed src="test.swf" quality="high" wmode="transparent" bgcolor="#ffffff" width="550" height="400" name="test" align="middle" allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" />
    </object>
    </div>
</body>
</html>

Вопрос

Как заставить FF, Chrome и другие браузеры эмулировать это поведение?

1 Ответ

2 голосов
/ 17 декабря 2010

wmode = прозрачный и wmode = непрозрачный - зло.И вот почему:

• Он работает споратно между различными браузерами, когда дело доходит до того, как он отображает его с контентом.Как вы заметили, иногда сцена позволяет кликам проходить, а иногда нет ... иногда вы вспыхиваете во флэш-памяти при попытке наложить HTML-контент поверх флэш-памяти ... и т.д ..

• Это снижает производительность флэш-памяти и приводит к снижению производительности компьютера пользователя (что приводит к резкому увеличению загрузки ЦП). Это происходит главным образом из-за того, что Flash-проигрыватель вынужден отправлять направления рендеринга через браузер, а не напрямую в графический процессор...aa, и он не в состоянии интеллектуально уменьшить свой FPS, когда скрыт от просмотра.

• Случайные ошибки, «Бог знает, откуда они пришли», которые появляются во Flash, когда вы переворачиваете wmode на один изэти ужасные варианты ... Я видел ошибки рендеринга текста из первых рук, ошибки рисования фигур и ошибки externalInterface, которые волшебным образом исчезают, когда вы удаляете параметр wmode или переключаете его на одно из дружественных значений.

Рассматривали ли вы создание гибрида?Тип решения, где у вас есть несколько SWF-фильмов - их х / у в окне браузера контролируются HTML?Я предполагаю, что вам все равно придется использовать wmode = transparent для наложения слоя на остальную часть страницы, но тогда, по крайней мере, вы последовательно получите возможность переходить к содержанию ниже ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...