3
votes

I can't figure out how to fire a javascript event when rolling over a flash element even though it's on wmode:transparent.

I have tried to put a transparent sensor div over the flash element with the onMouseover event and it worked but the flash became useless and totally unclickable.

Appreciate Any ideas.

Thanks

2
just from the top of my mind: put your movie in a div. Use jQuery to calculate where this div is positioned and track the mouse-position. Then you can figure out if the cursor is over the movie. links: docs.jquery.com/Tutorials:Mouse_Position and api.jquery.com/position - stian.net
Thanks, but it's not really clean, and it requires jQuery which is not reliable for pure javascript widgets. - CodeOverload
Your SWF becomes unclickable because you have the div z-indexed above the SWF. That's how z-index is intended to work. - user1385191

2 Answers

8
votes

This is much simpler than ExternalInterface if you're looking for just simple mouse detection on an entire SWF.

Just target the <object> or <embed> tag that's embedding the SWF via Javascript.


document.getElementById("content-banner").onmouseover = over;

function over(evt)
{
 alert("moused over");  
}

http://jsfiddle.net/p7YkA/

1
votes

Use the ExternalInterface and call a JavaScript method dispatching the event from Flash.