Erstellen und Verschieben dreidimensionaler ObjekteFlash Player 10 und höher, Adobe AIR 1.5 und höher Um ein zweidimensionales in ein dreidimensionales Anzeigeobjekt zu konvertieren, können Sie seine z-Eigenschaft explizit auf einen numerischen Wert setzen. Wenn Sie der z-Eigenschaft einen Wert zuweisen, wird ein neues Transform-Objekt für das Anzeigeobjekt erstellt. Sie können ein neues Transform-Objekt auch erstellen, indem Sie die DisplayObject.rotationX- oder DisplayObject.rotationY-Eigenschaft einstellen. Das Transform-Objekt besitzt eine Matrix3D-Eigenschaft, die bestimmt, wie das Anzeigeobjekt im dreidimensionalen Raum dargestellt wird. Im folgenden Code werden die Koordinaten für ein Anzeigeobjekt mit dem Namen „leaf“ gesetzt: leaf.x = 100; leaf.y = 50; leaf.z = -30; Sie können diese Werte sowie davon abgeleitete Eigenschaften über die matrix3D-Eigenschaft des Transform-Objekts von „leaf“ anzeigen: 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); Informationen zu den Eigenschaften des Transform-Objekts finden Sie in der Beschreibung der Transform-Klasse. Informationen zu den Eigenschaften des Matrix3D-Objekts finden Sie in der Beschreibung der Matrix3D-Klasse. Verschieben eines Objekts im 3D-RaumSie verschieben ein Objekt in einem dreidimensionalen Raum, indem Sie die Werte der x-, y- oder z-Eigenschaft ändern. Wenn Sie den Wert der z-Eigenschaft ändern, entsteht der Eindruck, dass das Objekt dem Betrachter näher rückt oder sich vom Betrachter entfernt. Durch den folgenden Code werden zwei Ellipsen entlang ihrer z-Achsen vor- und zurückgesetzt, indem als Reaktion auf ein Ereignis der Wert ihrer z-Eigenschaft geändert wird. Dabei bewegt sich ellipse2 schneller als ellipse1, da ihre z-Eigenschaft bei jedem Bildereignis um ein Vielfaches von 20 erhöht wird, während die z-Eigenschaft von ellipse1 nur um ein Vielfaches von 10 erhöht wird: 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;
}
}
Drehen eines Objekts im 3D-RaumSie können ein Objekt auf drei unterschiedliche Arten drehen, abhängig davon, wie Sie die Dreheigenschaften des Objekts einstellen: rotationX, rotationY und rotationZ. Die Abbildung unten zeigt zwei Quadrate, die nicht gedreht wurden. ![]() Die nächste Abbildung zeigt dieselben zwei Quadrate, wenn Sie die rotationY-Eigenschaft des Containers der beiden Quadrate erhöhen, sodass sie um die y-Achse gedreht werden. Durch das Drehen des Containers, oder übergeordneten Anzeigeobjekts, werden auch die beiden Quadrate gedreht: container.rotationY += 10; ![]() Die nächste Abbildung zeigt, was passiert, wenn Sie die rotationX-Eigenschaft des Containers der Quadrate setzen. Die Quadrate werden um die x-Achse gedreht. ![]() Die nächste Abbildung zeigt, was passiert, wenn Sie die rotationZ-Eigenschaft des Containers der Quadrate erhöhen. Die Quadrate werden um die z-Achse gedreht. ![]() Ein Anzeigeobjekt kann im dreidimensionalen Raum gleichzeitig verschoben und gedreht werden. |
|