Matrix nesnelerini kullanma

Flash Player 9 ve üstü, Adobe AIR 1.0 ve üstü

Matrix sınıfı, bir koordinat boşluğundan diğerine nasıl eşleme yapılacağını belirleyen bir dönüşüm matrisini temsil eder. Bir Matrix nesnesinin özelliklerini ayarlayarak bir görüntüleme nesnesi üzerinde çeşitli grafik dönüştürmeleri gerçekleştirebilirsiniz. Bunu yapmak için söz konusu Matrix nesnesini Transform nesnesinin matrix özelliğine uygulamanız ve ardından bu Transform nesnesini görüntüleme nesnesinin transform özelliği olarak uygulamanız gerekir. Bu dönüştürme işlevleri çevirmeyi ( x ve y yeniden konumlandırması), döndürmeyi, ölçeklemeyi ve eğmeyi içerir.

Bir Matrix nesnesinin özelliklerini ( a , b , c , d , tx , ty ) ayarlayarak bir matrisi doğrudan tanımlayabilseniz de, createBox() yönteminin kullanılması daha kolaydır. Bu yöntem, sonuç matrisinin ölçeklemesini, dönüşünü ve çevirme efektlerini doğrudan tanımlamanıza olanak sağlayan parametreleri içerir. Örneğin, aşağıdaki kod bir nesneyi 45 derece sağa doğru 10 piksel ve 20 piksel aşağı taşıyarak (çeviren) yatay olarak 2.0; dikey olarak 3.0 ölçeklendiren bir Matris nesnesi oluşturur.

var matrix:Matrix = new Matrix(); 
var scaleX:Number = 2.0; 
var scaleY:Number = 3.0; 
var rotation:Number = 2 * Math.PI * (45 / 360); 
var tx:Number = 10; 
var ty:Number = 20; 
matrix.createBox(scaleX, scaleY, rotation, tx, ty);

scale() , rotate() ve translate() yöntemlerini kullanarak da Matrix nesnesinin ölçeklemesini, dönüşünü ve çevirme efektlerini ayarlayabilirsiniz. Bu yöntemlerin, varolan Matrix nesnesinin değerleriyle birleştiğini unutmayın. Örneğin, scale() ve rotate() yöntemleri iki defa çağrıldığından, aşağıdaki kod, bir nesneyi 4 faktörüyle ölçekleyip 60 derece döndüren bir Matrix nesnesini belirler:

var matrix:Matrix = new Matrix(); 
var rotation:Number = 2 * Math.PI * (30 / 360); // 30° 
var scaleFactor:Number = 2; 
matrix.scale(scaleFactor, scaleFactor); 
matrix.rotate(rotation); 
matrix.scale(scaleX, scaleY); 
matrix.rotate(rotation); 
 
myDisplayObject.transform.matrix = matrix;

Bir Matrix nesnesine eğme dönüştürmesi uygulamak için, nesnenin b veya c özelliğini ayarlayın. b özelliği ayarlandığında, matris dikey olarak eğilir ve c özelliği ayarlandığında da matris yatay olarak eğilir. Aşağıdaki kod, myMatrix Matrix nesnesini 2 faktörüyle dikey olarak eğilir:

var skewMatrix:Matrix = new Matrix(); 
skewMatrix.b = Math.tan(2); 
myMatrix.concat(skewMatrix);

Görüntüleme nesnesinin transform özelliğine bir matrix dönüştürmesi uygulayabilirsiniz. Örneğin, aşağıdaki kod, myDisplayObject adındaki görüntüleme nesnesine bir matris dönüştürmesi uygular:

var matrix:Matrix = myDisplayObject.transform.matrix; 
var scaleFactor:Number = 2; 
var rotation:Number = 2 * Math.PI * (60 / 360); // 60° 
matrix.scale(scaleFactor, scaleFactor); 
matrix.rotate(rotation); 
 
myDisplayObject.transform.matrix = matrix;

Birinci satır, myDisplayObject görüntüleme nesnesi tarafından kullanılan varolan dönüştürme matrisine bir Matrix nesnesi ayarlar ( myDisplayObject görüntüleme nesnesinin transformation özelliğinin matrix özelliği). Bu şekilde, çağırdığınız Matrix sınıfı yöntemlerinin, görüntüleme nesnesinin varolan konumu, ölçeği ve dönüşü üzerinde birikimli bir etkisi olur.

Not: flash.geometry paketine ColorTransform sınıfı da dahil edilmiştir. Bir Transform nesnesinin colorTransform özelliğini ayarlamak için bu sınıf kullanılır. Herhangi bir geometrik dönüştürme türüne uygulanmadığı için, bu sınıf burada ayrıntılı olarak ele alınmamıştır. Daha fazla bilgi için Adobe Flash Platformu için ActionScript 3.0 Başvurusu 'nda bulunan ColorTransform sınıfına bakın.