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.