Le meilleur moyen d'obtenir la couleur où une souris a été cliquée dans AS3
J'ai une image (mx) et je veux obtenir le uint du pixel qui a été cliqué.
Des idées?
source d'informationauteur Cameron A. Ellis
Vous devez vous connecter pour publier un commentaire.
Voici un moyen encore plus simple de mise en œuvre. Tout ce que vous faire est de prendre un instantané de la scène à l'aide de la draw() méthode bitmapData, puis utilisez getPixel() sur le pixel situé sous la souris. L'avantage de ceci est que vous pouvez goûter à tout ce qui a été dessiné à la scène, pas seulement un bitmap.
Espère que c'est utile!
Modifier:
Cette version utilise un seul
BitmapData
et supprime l'étape inutile de créer unBitmap
. Si vous êtes d'échantillonnage de la couleur surMOUSE_MOVE
puis c'est essentiel pour éviter des problèmes de mémoire.Remarque: si vous utilisez un curseur personnalisé sprite que vous aurez à utiliser un objet autre que l'état, sinon vous allez être d'échantillonnage de la couleur de la custom sprite à la place de ce qui est en dessous.
Quelques minutes sur le BitmapData LiveDoc Page va vous emmener là où vous devez aller. Une fois que vous avez votre image chargée dans un Bitmap variable, vous pouvez accéder à sa propriété BitmapData. Ajouter un De La Souris Cliquez Sur L'Événement Auditeur à l'image et d'utiliser BitmapData::getPixel. L'exemple de la méthode getPixel montre comment convertir le uint réponse rgb, hex code.
Voici une modification de l'Exemple donné sur le BitmapData page qui a fonctionné pour moi (à l'aide de mxmlc - YMMV):
Ce n'est pas spécifique à la flexion ou mx:l'Image, et permet de saisir une couleur de pixel valeur à partir d'une image bitmap objet dessiné (à condition d'avoir l'autorisation):
Vous pouvez facilement saisir un pixel de la scène ou de votre mx:l'Image de l'instance. Il est beaucoup plus efficace que le dessin de l'ensemble de la scène (ou de l'objet dessiné), et devrait être assez rapide pour accrocher jusqu'à MouseEvent.MOUSE_MOVE pour un retour visuel instantané.