Avec Flash, est-il possible de détecter si un objet est complètement sur un autre? E.g. J'ai un rectangle (surface de plancher) et un cercle (meuble).
Maintenant, je veux détecter si le cercle est entièrement dans le rectangle, et pas seulement s'il touche le rectangle quelque part. Est-ce possible ? Comment ?Zone de détection d'impact instantané
Répondre
Bien sûr:
function testOverlap(large:DisplayObject, small:DisplayObject):Boolean {
return large.getBounds(stage).containsRect(small.getBounds(stage));
}
En d'autres termes, obtenir le rectangle de limites du grand objet, et utiliser Rectangle.containsRect
pour voir si elle contient le rectangle des limites du petit objet.
Je l'ai utilisé la bibliothèque de détection de collision vu ici: http://www.tink.ws/blog/as-30-hittest/
Les fonctions de détection de collision vous revenez à un objet flash.geom.Rectangle qui représente les limites de chevauchement des 2 objets se percutent. Vous pouvez l'utiliser pour accomplir ce que vous voulez en vérifiant la largeur et la hauteur du rectangle par rapport à la largeur et la hauteur de votre cercle, si elles correspondent au cercle est complètement sur le rectangle.
ou sans avoir à traiter avec le nouveau code, si votre application est assez simple, vous pourriez utiliser une solution comme l'illustre ce schéma:
alt text http://www.andrewwalpole.com/hitsolution.gif
Avoir un objet zone touchée séparé qui est plus petit que le sol garantira que vous obtiendrez seulement un coup quand le cercle est entièrement au-dessus du plancher.
- 1. Détection de glisser déposer dans la zone de texte HTML?
- 2. Déploiement de client instantané Oracle?
- 3. Détection d'une zone de superposition d'une seule couleur avec ImageMagick
- 4. toucher la détection sur une zone particulière de l'écran
- 5. Force du signal instantané
- 6. Accrochage à bascule instantané
- 7. SSRS: Runtime instantané?
- 8. Impossible de créer un instantané de Canevas
- 9. page web dynamique instantané automatique
- 10. séquence Instantané pour flv AS3
- 11. Instantané des objets en mémoire
- 12. instantané de collection pour la comparaison IsDirty
- 13. Comment obtenir instantané de ma toile
- 14. Détection de la hauteur de la zone de visualisation en utilisant Javascript
- 15. Instantané à partir d'une vidéo MPMoviePlayerController
- 16. instantané du navigateur avec flash ou javascript
- 17. Empilement instantané d'une pile d'objets dynamiques
- 18. Détection des modifications de TextInput sur une zone de liste déroulante modifiable dans Flex
- 19. Détection de la clé (verrouillage des majuscules) dans une zone de texte
- 20. jQuery détection de clic en dehors de la zone spécifiée problème
- 21. Client instantané Oracle avec fournisseur OraOLE DB?
- 22. Javascript OnChange détection pour textarea
- 23. où placer l'événement de détection (redimensionnement/défilement) appel de détection
- 24. Détection de touches sur un NSOpenGLView
- 25. Détection du changement de textarea html
- 26. Prendre un instantané de view/WebView par programme
- 27. Prendre un instantané MySQL et recréer la base de données?
- 28. Accueil Google Baked Instantané (Juste l'AJAX de fantaisie)
- 29. Récupération des informations de message instantané à partir d'un ABRecordRef
- 30. Détection de l'objet jQuery
+1. très agréable :) – back2dos
Une bonne idée, mais vous auriez besoin d'un objet de test invisible supplémentaire pour chaque paire d'objets à tester. Pas une solution générale;) – fenomas