BitmapData’yı Matrix ile Döndürme

by admin on 03 Ocak 2010

in Genel

Bu yazımdan itibaren AS3 hakkında küçük ipuçları da yazmayaca başlayacağım.Bugun gördüğüm ve sizlerle paylaşmak istediğim bir küçük nokta var. Matrix ile bitmapdatanın hem scale edilişini ve çevirilmesine ilişkin örnek:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
			   xmlns:s="library://ns.adobe.com/flex/spark" 
			   xmlns:mx="library://ns.adobe.com/flex/halo" width="750" height="125" initialize="init()">
 
	<fx:Script>
		<![CDATA[
			import flash.geom.Matrix;
 
			private var tmp_bitmapd:BitmapData = new BitmapData(75,50);
			private var derece:Number = 0;
 
			private function init():void{
				this.addEventListener(Event.ENTER_FRAME,dondur);
				var spr:Sprite = new Sprite();
				spr.graphics.beginFill(0xFF0000,0.8);
				spr.graphics.drawRect(0,0,50,50);
				spr.graphics.endFill();
 
				tmp_bitmapd.draw(spr);
			}
			private function dondur(evt:Event):void{
				derece++;
 
				var mtrx:Matrix = new Matrix();				
				mtrx.translate( -tmp_bitmapd.width / 2  ,-tmp_bitmapd.width / 2);
				mtrx.rotate(derece * (Math.PI / 180));
				mtrx.translate( tmp_bitmapd.width / 2  ,tmp_bitmapd.width / 2 );
 
				imageView.graphics.clear();
				imageView.graphics.beginBitmapFill(tmp_bitmapd,mtrx,false);
				imageView.graphics.drawRect(0, 0, imageView.width, imageView.height);
				imageView.graphics.endFill();
			}
		]]>
	</fx:Script>
	<mx:Image id="imageView" width="75" height="50"/>
 
 
</s:Application>

Demo:

Leave a Comment

Previous post:

Next post:

</