Sie können die Größe eines Anzeigeobjekts auf zwei Arten messen und ändern. Dabei verwenden Sie entweder die Abmessungseigenschaften (
width
und
height
) oder die Skalierungseigenschaften (
scaleX
und
scaleY
).
Jedes Anzeigeobjekt hat eine
width
- und eine
height
-Eigenschaft, welche die ursprüngliche Größe des Objekts in Pixel festlegen. Sie können die Werte dieser Eigenschaften auslesen, um die Größe des Anzeigeobjekts zu messen. Außerdem können Sie neue Werte angeben, um die Größe des Objekts zu ändern. Dies wird im folgenden Beispiel gezeigt:
// Resize a display object.
square.width = 420;
square.height = 420;
// Determine the radius of a circle display object.
var radius:Number = circle.width / 2;
Das Ändern von
height
oder
width
eines Anzeigeobjekts führt zu einer Skalierung des Objekts; dies bedeutet, dass der Inhalt entweder gestreckt oder gestaucht wird, damit er in den neuen Bereich passt. Wenn das Anzeigeobjekt nur Vektorformen enthält, werden diese ohne Qualitätsverlust in der neuen Skalierung neu gezeichnet. Bitmap-Elemente im Anzeigeobjekt werden eher verkleinert als neu gezeichnet. Bei einem Digitalfoto, dessen Breite und Höhe über die tatsächlichen Abmessungen des Anzeigeobjekts hinausreichen, werden die Pixelinformationen des Bilds geändert, und es könnte gezackt aussehen oder es sind einzelne Pixelpunkte zu sehen.
Wenn Sie die Eigenschaften
width
oder
height
eines Anzeigeobjekts ändern, aktualisieren Flash Player und AIR auch die Eigenschaften
scaleX
und
scaleY
des Objekts.
Hinweis:
TextField-Objekte bilden bei diesem Skalierungsverhalten eine Ausnahme. Textfelder müssen ihre Größe selbst an Textumbrüche und Schriftgrößen anpassen. Deshalb setzen sie ihre Eigenschaften „scaleX“ oder „scaleY“ nach der Größenänderung auf den Wert 1 zurück. Wenn Sie jedoch die Werte „scaleX“ oder „scaleY“ eines TextField-Objekts anpassen, ändern sich die Werte für Breite und Höhe (width, height) gemäß den von Ihnen angegebenen Skalierungswerten.
Diese Eigenschaften repräsentieren die relative Größe des Anzeigeobjekts im Vergleich zur Originalgröße. Die Eigenschaften
scaleX
und
scaleY
verwenden Brüche (Dezimalwerte) zur Darstellung von Prozentzahlen. Angenommen, die Eigenschaft
width
eines Anzeigeobjekts wurde geändert, sodass sie nur noch die Hälfte der ursprünglichen Größe beträgt. In diesem Fall nimmt die Eigenschaft
scaleX
des Objekts den Wert
.5
an, also 50 Prozent. Wurde die Höhe verdoppelt, nimmt die Eigenschaft
scaleY
den Wert
2
an, also 200 Prozent.
// circle is a display object whose width and height are 150 pixels.
// At original size, scaleX and scaleY are 1 (100%).
trace(circle.scaleX); // output: 1
trace(circle.scaleY); // output: 1
// When you change the width and height properties,
// Flash Player changes the scaleX and scaleY properties accordingly.
circle.width = 100;
circle.height = 75;
trace(circle.scaleX); // output: 0.6622516556291391
trace(circle.scaleY); // output: 0.4966887417218543
Größenänderungen erfolgen nicht proportional. Anders ausgedrückt, wenn Sie die Eigenschaft
height
eines Quadrats ändern, jedoch nicht die Eigenschaft
width
, so sind die Proportionen nicht mehr gleich, und die Form gleicht einem Rechteck anstatt einem Quadrat. Wenn Sie relative Änderungen an der Größe eines Anzeigeobjekts vornehmen möchten, können Sie alternativ zum Einstellen der Eigenschaften
width
oder
height
die Werte der Eigenschaften
scaleX
und
scaleY
ändern. Beispielsweise ändert der folgende Code die Eigenschaft
width
des Anzeigeobjekts
square
und ändert dann den vertikalen Maßstab (
scaleY
) so, dass er dem horizontalen Maßstab entspricht und die Größe des Quadrats proportional bleibt.
// Change the width directly.
square.width = 150;
// Change the vertical scale to match the horizontal scale,
// to keep the size proportional.
square.scaleY = square.scaleX;