2010-10-05 21 views
0

Je crée un récipient comme un MovieClip et l'ajout d'un gestionnaire de mousewheel, puis y ajouter des éléments comme ceci:AS3 Movieclip ne répond pas à l'événement MOUSE_WHEEL

container = new MovieClip();   
addChild(container); 
container.addEventListener(MouseEvent.MOUSE_WHEEL, HandleWheel); 
container.addChild(item); 
// etc. adding more items 

Cependant, le mousewheel est de répondre que lorsque la souris est sur l'un des articles, pas sur les zones visibles du conteneur entre les articles. Y at-il un moyen de faire en sorte que l'événement est toujours déclenché lorsque la souris est sur le conteneur, pas seulement sur ses enfants?

Je ne sais pas si c'est pertinent, mais le conteneur a un ensemble de masque. J'ai essayé d'ajouter l'écouteur au masque et ça n'a rien fait, cependant.

Si je place le opaqueBackground du conteneur en rouge, je peux voir les limites du conteneur. Je ne comprends pas pourquoi l'événement de la molette de la souris ne se déclenche pas lorsque la souris est dans ces limites. Si ce n'est vraiment pas possible, existe-t-il une autre façon de gérer la situation sans avoir besoin que le conteneur réponde directement aux événements de la souris?

Merci pour toute aide.

Répondre

0

Vous devrez peut-être ajouter un rectangle à l'arrière-plan pour agir comme une boîte englobante. Il peut avoir son alpha à 0%. Le problème est que si le curseur est sur une zone complètement transparente de l'objet, il ne passera pas les événements de la souris, comme il ne devrait pas (sinon nous serions toujours coincé avec des zones rectangulaires); dans ce cas, l'ajout des arrière-plans transparents le corrige.