Как обеспечить срабатывание элемента DOM при наведении курсора мыши, если он содержит объект Flash

У меня есть div, содержащий несколько дочерних элементов, один из которых - флеш-ролик.

При наведении курсора на этот div я хочу, чтобы он изменил стиль, чтобы указать, что он перевернут. Моя проблема в том, что события mouseover и mouseout не всегда срабатывают, особенно если пользователь слишком быстро наводит указатель мыши на элемент flash.

Любые предложения о том, как я могу гарантировать, что событие mouseover всегда запускается.

Я не могу добавить событие к самому флэш-ролику, потому что это проприетарный код, для которого у меня нет источника.

Также я не могу покрыть флэш-фильм в div / image, потому что мне нужно, чтобы события ролловера и щелчка происходили внутри самой вспышки.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
0
2 654
3

Ответы 3

Что вы можете сделать, так это накрыть элемент flash невидимым элементом div. Поместите свой обработчик onmouseover в этот div и добавьте строку в обработчик, чтобы скрыть покрывающий div. В то же время добавьте в окно функцию onmouseover - она ​​должна срабатывать, когда мышь покидает элемент flash. (Я надеюсь).

  1. Есть <div>, закрывающий вашу вспышку.
  2. Когда пользователь наводит на него курсор:
    1. Он вызывает любую функцию, которую ему нужно делать.
    2. Он скрывается, обеспечивая нормальное взаимодействие с SWF.
    3. Он помещает в окно функцию наведения указателя мыши, которая:
      1. Снова покажите оригинальный div.
      2. Вызывает вашу функцию "mouseout".
      3. Удаляет функцию window.onmouseover.

хм, это могло быть гениально, я попробую

EvilPuppetMaster 14.10.2008 09:12

Простой ответ: вы не можете, учитывая ваши ограничения.

Сложный ответ вы, кажется, уже знаете. Флэш-ролик запускается в песочнице, которая не запускает обычные события DOM. Если вы хотите запускать события мыши во флэш-памяти, вы не можете скрыть это с помощью элементов DOM. Если у вас нет доступа к источнику флэш-ролика, вы не сможете навести мосты в мир JS.

Я думаю, у вас безвыходная ситуация.

вы действительно можете строить «мосты». Прошло некоторое время с тех пор, как я занимался программированием на Flash, но я думаю, что есть функция под названием FSCommand, которая позволяет вам вызывать функции javascript на странице.

nickf 14.10.2008 18:08

Измените параметр wmode тега object / embed на непрозрачный.

Ваш код должен выглядеть примерно так.

<object classid = "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase = "http://download.macromedia
.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width = "800" height = "600">
    <param name = "movie" value = "movie.swf">
    <param name = "wmode" value = "opaque">
    <embed src = "movie.swf" pluginspage = "http://www.macromedia.com/go/getflashplayer" type = "application/x-shockwave-flash" width = "800" height = "600"></embed>
</object>

Другие вопросы по теме