J'ai une classe de toile spéciale couvrant toute ma scène, et un tas de hotspots Sprite sur la couche ci-dessous. Si je mets les hotspots sur le même calque que mon canevas, le canevas n'enregistre pas les événements MOUSE_DOWN si ma souris se trouve dans l'un des hotspots, puisque les hotspots sont ciblés à la place. Cependant, si je garde les hotspots sur le calque inférieur, le canevas gère tous les MouseEvents. Existe-t-il un moyen de faire en sorte que MouseEvents cible plus d'une chose, de sorte que le canvas et les hotspots répondent à MouseEvents? (Le canevas est une classe de dessin bitmap et les zones sensibles sont censées se déclencher lorsque le curseur les touche ou clique dessus.)Problème Flash/Actionscript: est-ce que MouseEvents peut cibler plus d'une chose à la fois?
Répondre
ActionScript propose à la fois des bulles d'événements et la capture d'événements. Cela signifie que vous pouvez écouter les événements commençant par contenir des éléments ou des éléments enfants. Vous avez juste besoin de créer le bon type d'écouteur d'événement. La capture commence à capturer des événements sur les éléments parents lorsqu'elle descend la chaîne des enfants jusqu'à ce qu'elle atteigne l'élément où l'événement a été déclenché. Les bulles d'événements commencent à écouter les événements chez l'enfant et se déplacent vers le parent.
Le troisième argument à addEventListener
, useCapture, détermine si vous souhaitez faire bouillonner ou capturer. Il semble que vous souhaitiez créer un bouillonnement d'événement, vous devez donc définir useCapture sur false. Les écouteurs d'événement seront déclenchés sur l'enfant et sur le parent.
apphacker avait raison.
Il a deux autres choses que vous pourriez être intéressé:
la propriété mouseChildren et la méthode getObjectsUnderPoint()
bonne chance
- 1. Quelque chose comme dictionnaire, mais peut stocker plus d'une valeur?
- 2. Ruby ne crée que 3 threads à la fois
- 3. Comment ajouter MouseEvents à un AbsolutePanel?
- 4. VS2008 binaire 3 fois plus lent que VS2005?
- 5. Cibler à la fois 32 bits et 64 bits avec Visual Studio dans la même solution/projet
- 6. MYSQL Comment puis-je m'assurer que la ligne n'est pas mise à jour plus d'une fois?
- 7. Empêcher Java de charger la bibliothèque plus d'une fois
- 8. SELECT à la fois
- 9. Html: "-" est la même chose que l'espace ""?
- 10. La méthode la plus spécifique avec des allumettes à la fois arité fixes/variables (varargs)
- 11. joindre une table plus d'une fois dans la même requête?
- 12. Que peut faire la validation à la volée CSS d'IntelliJ?
- 13. même module plusieurs fois que
- 14. Faire quelque chose à la fois un identifiant C et une chaîne?
- 15. Définir DisplayObject pour passer sur MouseEvents
- 16. AppleScript pour cibler l'application frontale
- 17. C# menu tooltrip & quelque chose de plus
- 18. Interroger tous à la fois et enregistrer à la session, ou plusieurs fois?
- 19. Cibler .NET 2.0 pour une petite application
- 20. Comment sauter à un offset particulier plus d'une fois?
- 21. Comment peut-on interroger count() sur une série de plages à la fois?
- 22. Mise à jour d'une référence d'assemblage pour cibler la nouvelle version
- 23. La première fois que l'application adhoc est chargée sur l'iPhone
- 24. Bass.dll Jouer PushStream plus d'une fois
- 25. PHP servant une page à la fois
- 26. Enregistrement de plus de 1000 enregistrements dans la base de données à la fois
- 27. Comment mettre en œuvre le serveur push pour plus de valeurs à la fois?
- 28. comment afficher quelque chose une fois par heure dans asp.net?
- 29. réutiliser le BackgroundWorker plus d'une fois
- 30. Est-ce que [Hash NSString] est calculé à chaque fois?
Merci! J'ai joué un peu avec ça, mais il semble que cela ne permette toujours qu'une seule cible par événement. Est-il possible de faire d'une cible MouseEvent un hotspot, d'exécuter la fonction, puis de passer à la couche suivante? Si je commence à dessiner sur l'un des hotspots, la toile de dessin ne fonctionne pas. – Archagon
La cible est l'élément ou l'objet sur lequel vous avez cliqué. Il n'y a qu'une seule cible, et elle est disponible dans l'objet événement. On dirait que vous utilisez toujours l'événement attraper, et non bouillonnant. Si vous utilisez des bulles d'événements, cela fera exactement ce que vous voulez en fonction du contexte. –
Ah! Je l'ai. J'ajoutais les hotspots comme des enfants de la scène, pas la toile. Je vous remercie! – Archagon