Мы довольно долго боролись с этой проблемой и, наконец, пришли к простому решению.
Когда по врезке происходит щелчок, вы можете скрыть его, а затем повторно вызвать событие щелчка. Для chrome этот код использует элемент-оболочку для флэш-ролика, который фиксирует щелчок, присвойте этому элементу-оболочке класс «enableclickthrough» - вот некоторый код jquery, который выполняет это:
Редактировать: обновил это для моих собственных нужд, чтобы код был более избирательным в отношении того, через какие флэш-фильмы можно кликать - теперь это единственные, которые имеют класс enableclickthrough или являются потомками элемента с этим классом
// When a mouse up occurs on an embed or a holder element taged with class enableclickthrough, then hide the element and refire the click
$(document).ready(function (){
$('body').mouseup(function (event) {
var offset = $(this).offset(),
clientX = event.clientX,
clientY = event.clientY,
left = offset.left,
top = offset.top,
x = clientX - left,
y = clientY - top,
target = $(event.target),
display = $(target).css('display'),
passClickTo;
if (typeof clientX != 'undefined' && (target.parent().hasClass('enableclickthrough') || target.hasClass('enableclickthrough'))) {
target.css('display', 'none');
// If you don't pull it out of the array for some reason it doesn't work in all instances
passClickTo = $(document.elementFromPoint(x, y));
passClickTo[0].click();
target.css('display', display);
return false;
}
});
});
Вот пример флеш-ролика с элементом-обёрткой, который позволяет правильно функционировать в chrome
<div class="enableclickthrough">
<script type="text/javascript">
AC_FL_RunContent([params_for_your_flashmovie_here]);
</script>
</div>
Имейте в виду, что это решение предназначено для флэш-фильмов, в которых нет интерактивных компонентов.
Надеюсь, это поможет другим, у которых возникли проблемы с флэш-фильмами.
С наилучшими пожеланиями
Уилл Феррер