Recherche
Peut être aimerez-vous...
Sections du site
Sites Neamar
Lisez ces articles !
| AS3 snippet : faire une rotation type "miroir" |
|
| Programmation et tuning - as3 | ||||
| Écrit par Neamar | ||||
| Samedi, 05 Juin 2010 11:28 | ||||
|
AS3 snippet : effectuer une rotation « miroir » sur un Bitmap. Il faut utiliser la classe Matrix, qui dispose de propriétés pour appliquer des opérations matricielles (translation, mise à l'échelle, rotation, skew).
Le code suit. /** * Retourne l'image passée en paramètre pour lui appliquer un effet miroir * @param ImageOriginale l'image à retourner verticalement (les coordonnées Y restent im * @return */ public function mirror(ImageOriginale:search?q=Bitmap%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:Bitmap.html&filter=0&num=100&btnI=lucky">Bitmap):search?q=Bitmap%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:Bitmap.html&filter=0&num=100&btnI=lucky">Bitmap { var ImageMiroir:search?q=Bitmap%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:Bitmap.html&filter=0&num=100&btnI=lucky">Bitmap = new search?q=Bitmap%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:Bitmap.html&filter=0&num=100&btnI=lucky">Bitmap(); //Construction de la matrice de transformation. //scaleX = -1 //Translation X : var Miroir:search?q=Matrix%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:Matrix.html&filter=0&num=100&btnI=lucky">Matrix = new search?q=Matrix%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:Matrix.html&filter=0&num=100&btnI=lucky">Matrix( -1, 0, 0, 1, ImageOriginale.width, 0 ); //Construction des données, en dessinant ImageOriginale avec la matrice var MiroirData:search?q=BitmapData%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:BitmapData.html&filter=0&num=100&btnI=lucky">BitmapData = new search?q=BitmapData%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:BitmapData.html&filter=0&num=100&btnI=lucky">BitmapData(ImageOriginale.width,ImageOriginale.height); MiroirData.draw(ImageOriginale, Miroir); ImageMiroir.bitmapData = MiroirData; return ImageMiroir; } Oh, et juste pour le fun : si vous n'avez pas besoin d'inverser des données de pixels, vous pouvez tout simplement utiliser scaleX sur -1 qui a le même effet au rendu ;) |
||||
| Mise à jour le Jeudi, 10 Juin 2010 22:13 |
Ajouter votre commentaire
Commentaires (1)
1Lundi, 01 Août 2011 17:01
Tink
Arf ! J'avais pas pensé au scaleX ou scaleY à -1. Bien joué et merci !


