15.10.2012 Views

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ACTIONSCRIPT 3.0 ENTWICKLERHANDBUCH<br />

Programmieren von Anzeigeobjekten<br />

// Resize a display object.<br />

square.width = 420;<br />

square.height = 420;<br />

// Determine the radius of a circle display object.<br />

var radius:Number = circle.width / 2;<br />

Das Ändern von height oder width eines Anzeigeobjekts führt zu einer Skalierung des Objekts; dies bedeutet, dass<br />

der Inhalt entweder gestreckt oder gestaucht wird, damit er in den neuen Bereich passt. Wenn das Anzeigeobjekt nur<br />

Vektorformen enthält, werden diese ohne Qualitätsverlust in der neuen Skalierung neu gezeichnet. Bitmap-Elemente<br />

im Anzeigeobjekt werden eher verkleinert als neu gezeichnet. Bei einem Digitalfoto, dessen Breite und Höhe über die<br />

tatsächlichen Abmessungen des Anzeigeobjekts hinausreichen, werden die Pixelinformationen des Bilds geändert,<br />

und es könnte gezackt aussehen oder es sind einzelne Pixelpunkte zu sehen.<br />

Wenn Sie die Eigenschaften width oder height eines Anzeigeobjekts ändern, aktualisieren Flash Player und AIR auch<br />

die Eigenschaften scaleX und scaleY des Objekts.<br />

Hinweis: TextField-Objekte bilden bei diesem Skalierungsverhalten eine Ausnahme. Textfelder müssen ihre Größe selbst<br />

an Textumbrüche und Schriftgrößen anpassen. Deshalb setzen sie ihre Eigenschaften „scaleX“ oder „scaleY“ nach der<br />

Größenänderung auf den Wert 1 zurück. Wenn Sie jedoch die Werte „scaleX“ oder „scaleY“ eines TextField-Objekts<br />

anpassen, ändern sich die Werte für Breite und Höhe (width, height) gemäß den von Ihnen angegebenen<br />

Skalierungswerten.<br />

Diese Eigenschaften repräsentieren die relative Größe des Anzeigeobjekts im Vergleich zur Originalgröße. Die<br />

Eigenschaften scaleX und scaleY verwenden Brüche (Dezimalwerte) zur Darstellung von Prozentzahlen.<br />

Angenommen, die Eigenschaft width eines Anzeigeobjekts wurde geändert, sodass sie nur noch die Hälfte der<br />

ursprünglichen Größe beträgt. In diesem Fall nimmt die Eigenschaft scaleX des Objekts den Wert .5 an, also 50<br />

Prozent. Wurde die Höhe verdoppelt, nimmt die Eigenschaft scaleY den Wert 2 an, also 200 Prozent.<br />

// circle is a display object whose width and height are 150 pixels.<br />

// At original size, scaleX and scaleY are 1 (100%).<br />

trace(circle.scaleX); // output: 1<br />

trace(circle.scaleY); // output: 1<br />

// When you change the width and height properties,<br />

// Flash Player changes the scaleX and scaleY properties accordingly.<br />

circle.width = 100;<br />

circle.height = 75;<br />

trace(circle.scaleX); // output: 0.6622516556291391<br />

trace(circle.scaleY); // output: 0.4966887417218543<br />

Größenänderungen erfolgen nicht proportional. Anders ausgedrückt, wenn Sie die Eigenschaft height eines<br />

Quadrats ändern, jedoch nicht die Eigenschaft width, so sind die Proportionen nicht mehr gleich, und die Form<br />

gleicht einem Rechteck anstatt einem Quadrat. Wenn Sie relative Änderungen an der Größe eines Anzeigeobjekts<br />

vornehmen möchten, können Sie alternativ zum Einstellen der Eigenschaften width oder height die Werte der<br />

Eigenschaften scaleX und scaleY ändern. Beispielsweise ändert der folgende Code die Eigenschaft width des<br />

Anzeigeobjekts square und ändert dann den vertikalen Maßstab (scaleY) so, dass er dem horizontalen Maßstab<br />

entspricht und die Größe des Quadrats proportional bleibt.<br />

// Change the width directly.<br />

square.width = 150;<br />

// Change the vertical scale to match the horizontal scale,<br />

// to keep the size proportional.<br />

square.scaleY = square.scaleX;<br />

Letzte Aktualisierung 27.6.2012<br />

192

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!