2B görüntüleme nesnesini 3B görüntüleme nesnesine dönüştürmek için, bu nesnenin
z
özelliğini sayısal bir değere ayarlayabilirsiniz.
z
özelliğine bir değer atadığınızda, görüntüleme nesnesi için yeni bir Transform nesnesi oluşturulur.
DisplayObject.rotationX
veya
DisplayObject.rotationY
özelliklerinin ayarlanmasıyla yeni bir Transform nesnesi oluşturulur. Transform nesnesi, görüntüleme nesnesinin 3B alanda temsil edilme şeklini yöneten bir
Matrix 3D
özelliğini içerir.
Şu kod, "leaf" adındaki bir görüntüleme nesnesinin koordinatlarını ayarlar:
leaf.x = 100; leaf.y = 50; leaf.z = -30;
Yaprak öğesinin Transform nesnesinin
matrix3D
özelliğinde, bu değerlerden kaynaklanan özelliklerin yanı sıra bu değerleri de görebilirsiniz:
var leafMatrix:Matrix3D = leaf.transform.matrix3D;
trace(leafMatrix.position.x);
trace(leafMatrix.position.y);
trace(leafMatrix.position.z);
trace(leafMatrix.position.length);
trace(leafMatrix.position.lengthSquared);
Transform nesnesinin özellikleriyle ilgili bilgi için bkz.
Transform
sınıfı. Matrix3B nesnesinin özellikleriyle ilgili bilgi için bkz.
Matrix3B
sınıfı.
3B alanda nesneyi taşıma
x, y, z
özelliklerini değiştirerek 3B alanda bir nesneyi taşıyabilirsiniz.
z
özelliğinin değerini değiştirdiğinizde, nesne izleyene yaklaşıyor veya uzaklaşıyor gibi görünür.
Şu kod, bir olaya yanıt olarak
z
özelliklerinin değerini değiştirerek iki elipsi z ekseni boyunca ileri geri hareket ettirir.
ellipse2
,
ellipse1
öğesinden daha hızlı hareket eder: her Frame olayında
ellipse1
öğesinin
z
özelliği 10'un katıyla artırılırken, bunun
z
özelliği 20'nin katıyla artırılır:
var depth:int = 1000;
function ellipse1FrameHandler(e:Event):void
{
ellipse1Back = setDepth(e, ellipse1Back);
e.currentTarget.z += ellipse1Back * 10;
}
function ellipse2FrameHandler(e:Event):void
{
ellipse2Back = setDepth(e, ellipse1Back);
e.currentTarget.z += ellipse1Back * 20;
}
function setDepth(e:Event, d:int):int
{
if(e.currentTarget.z > depth)
{
e.currentTarget.z = depth;
d = -1;
}
else if (e.currentTarget.z < 0)
{
e.currentTarget.z = 0;
d = 1;
}
}
3B alanda nesneyi döndürme
Nesnenin dönüş özelliklerini nasıl ayarladığınıza bağlı olarak, bir nesneyi üç farklı şekilde döndürebilirsiniz:
rotationX
,
rotationY
ve
rotationZ
.
Aşağıdaki şekil, döndürülmemiş iki kareyi gösterir:
Sonraki şekil, y ekseninde döndürmek için karelerin kabının
rotationY
özelliğini artırdığınızda iki kareyi gösterir. İki karenin kabının veya üst görüntüleme nesnesinin döndürülmesiyle iki kare döndürülür:
container.rotationY += 10;
Sonraki şekil, karelerin kabının
rotationX
özelliğini ayarladığınızda ne olduğunu gösterir. Bu, x eksenindeki kareleri döndürür.
Sonraki şekil, karelerin kabının
rotationZ
özelliğini artırdığınızda ne olduğunu gösterir. Bu, z eksenindeki kareleri döndürür.
Görüntüleme nesnesi 3B alanda aynı anda hareket edip dönebilir.
|
|
|