Ändern der Größe und Skalieren von Objekten

Flash Player 9 und höher, Adobe AIR 1.0 und höher

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;