2010-01-13 5 views
1

J'ai un film Flash qui est incorporé dans une page HTML qui a un DIV dans une couche au-dessus du film. Le film Flash défile en fonction de la position de la souris sur le film. Le client veut que le défilement s'arrête lorsque la souris est sur le DIV. J'ai essayé d'utiliser l'événement mouseLeave, mais cela n'est pas déclenché par le DIV.Comment détecter lorsque la souris survole une couche HTML sur un film Flash?

Y at-il un moyen que le film Flash peut détecter lorsque la souris est sur le DIV?

Le film Flash a été développé à l'aide de Flash CS4 et AS3.

Voici la balise DIV:

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

Répondre

2

L'événement MOUSE_LEAVE ne fonctionne pas car même si la souris est sur le div, il se trouve toujours dans la zone de délimitation du fichier SWF. Vous devez utiliser ExternalInterface dans Flash pour enregistrer une fonction qui sera disponible pour javascript, puis vous l'appelez lorsque la souris survole la div. La fonction Flash désactive le défilement.

Dans Flash:

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

en Javascript:

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

MySWF est l'identifiant de votre fichier SWF.

1

films Flash (en général) sont toujours les plus z-index. Avez-vous essayé d'ajouter:

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

à votre code d'intégration?

+1

Les films Flash incorporés à la pédanterie légère n'utilisent pas l'index z le plus élevé, ils sont rendus directement à l'écran, sans passer par le navigateur. Définir 'wmode' sur' transparent' ou 'opaque' les rend dans le contexte du navigateur, ce qui les rend accessibles à l'empilement et aux superpositions –