Как определить, когда мышь находится над слоем HTML над фильмом Flash? - PullRequest
1 голос
/ 13 января 2010

У меня есть Flash-фильм, который встроен в HTML-страницу с DIV в слое поверх фильма. Фильм Flash прокручивается в зависимости от положения мыши над фильмом. Клиент хочет остановить прокрутку, когда мышь находится над DIV. Я попытался использовать событие mouseLeave, но оно не вызывается DIV.

Есть ли способ, которым фильм Flash может обнаружить, когда мышь находится над DIV?

Фильм Flash был разработан с использованием Flash CS4 и AS3.

Вот тег DIV:

<div style="position:absolute;top:0;left:0;width:1024;background:#fff;font-size:24px;z-order:2">
some text
</div>

Ответы [ 2 ]

2 голосов
/ 13 января 2010

Событие MOUSE_LEAVE не работает, потому что, даже если мышь находится над элементом div, он все еще находится в ограничивающей области SWF. Вам нужно будет использовать ExternalInterface во Flash, чтобы зарегистрировать функцию, которая будет доступна для javascript, а затем вызывать ее, когда мышь наводит курсор на элемент div. Функция Flash отключает прокрутку.

Во Flash:

import flash.external.ExternalInterface;
function stopScrolling() {
    // stop scrolling
}
ExternalInterface.addCallback('stopFlashScrolling', stopScrolling);

В Javascript:

document.getElementById('theDiv').onmouseover = function(e) {
    MySWF.stopFlashScrolling();
}

MySWF - это идентификатор вашего SWF.

1 голос
/ 13 января 2010

Flash-ролики (в общем) всегда имеют самый высокий z-индекс. Вы пробовали добавить:

<param name="wmode" value="transparent"> 

к вашему встраиваемому коду?

...