2011-01-07 7 views
3

Ich kann nicht herausfinden, wie ein Javascript-Ereignis ausgelöst wird, wenn Sie über ein Flash-Element rollen, obwohl es auf wmode:transparent ist.onMouseover ein Flash-Element?

Ich habe versucht, einen transparenten Sensor div über das Flash-Element mit dem OnMouseover-Ereignis und es funktionierte, aber der Blitz wurde nutzlos und völlig unclickable.

schätzen Alle Ideen.

Dank

+0

nur aus der Spitze von meinem Kopf: Ihren Film in einem div setzen. Verwenden Sie jQuery, um zu berechnen, wo dieses div positioniert ist, und verfolgen Sie die Mausposition. Dann können Sie herausfinden, ob der Cursor über dem Film ist. Links: http://docs.jquery.com/Tutorials:Mouse_Position und http://api.jquery.com/position/ –

+0

Danke, aber es ist nicht wirklich sauber, und es erfordert jQuery, die für reine Javascript-Widgets nicht zuverlässig ist. – Ryan

+0

Ihre SWF-Datei kann nicht geclickt werden, weil Sie die div z-indexiert über der SWF-Datei haben. So soll z-index funktionieren. –

Antwort

8

Dies ist viel einfacher als ExternalInterface, wenn Sie nur eine einfache Mauserkennung für eine ganze SWF suchen.

Zielen Sie einfach auf das <object> oder <embed>-Tag, das die SWF über Javascript einbettet.

 

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

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

http://jsfiddle.net/p7YkA/

+0

Warum funktioniert 'document.getElementById (" content-banner "). Onmouseover' funktioniert aber nicht' $ ("content-banner"). Mouseover() '? – theB3RV

1

die ExternalInterface verwenden und eine JavaScript-Methode das Ereignis aus dem Flash-Dispatching rufen.

+0

+1, das ist, wie Sie es tun. – sberry

+0

Möchten Sie die Down-Abstimmung erklären? – weltraumpirat

+0

Ich wünschte, ich könnte die Abstimmung abstimmen. Die OP erklärte nicht vollständig, dass sie versuchten, die gesamte SWF dazu zu bringen, das Ereignis im Falle einer Mausinteraktion auszulösen. Er bezieht sich auf ein Flash-Element (das für mich Teil des Flash-Films zu sein schien, nicht das Ganze.) FWIW, ich bevorzuge immer noch den ExternalInterface-Aufruf mit dem Ereignis, das an die Bühne angehängt ist. – sberry