2010-09-27 6 views

Répondre

6

Consultez la méthode getObjectsUnderPoint si vous souhaitez obtenir la liste de tous les objets enfants d'un conteneur d'objets d'affichage.

Sinon, vous pouvez utiliser hitTestPoint et passer un point avec les coordonnées mouseX et mouseY.

+0

accepté votre réponse, mais voir ma réponse aussi bien pour les détails ... – Yarin

0

Pourquoi ne pas utiliser un événement MouseEvent?

symbol.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver); 

function onMouseOver(evt:MouseEvent):void 
{ 
    //is called when mouse is over your symbol. 
} 
+0

Tobias, c'est seulement solution réalisable si votre composant est découvert et en ignorant les sous-composants. Pour les mises en page multicouches, cela ne le coupe généralement pas. – Yarin

1

Juan Pablo est correct, mais j'ai trouvé que hitTestPoint peut être fastidieux s'il n'est pas appliqué correctement. Plus précisément, le troisième argument (shapeFlag Boolean) doit être TRUE (la valeur par défaut est FALSE) et l'utilisation de event.stageX/Y sur les événements de souris fonctionne souvent lorsque mouseX/Y ne fonctionne pas.

ne peut expliquer exactement pourquoi, mais ce qui suit est assez fou la preuve dans mon expérience:

if (hitTestPoint(event.stageX, event.stageY, true)) 
    // Do something 
+0

Bons points. J'ai négligé de le mentionner, mais comme vous l'avez découvert, shapeFlag = 'true' est presque toujours ce que vous voulez (bien que la valeur par défaut soit false), sinon la boîte englobante des objets est testée, pas la forme (si vous avez un bitmap, cependant, cela ne fait aucune différence). Aussi, 'hitTestPoint' prend des coordonnées globales, c'est pourquoi vous devez soit prendre un point et le convertir dans l'espace de coordonnées global (lire:' obj.parent.localToGlobal (obj.x, obj.y) ') ou simplement en profiter des propriétés 'stageX' et' stageY' de 'MouseEvent'. –

Questions connexes