Potete misurare e manipolare le dimensioni di un oggetto di visualizzazione in due diversi modi, mediante le proprietà delle dimensioni (
width
e
height
) o le proprietà delle modifiche in scala (
scaleX
e
scaleY
).
Ogni oggetto di visualizzazione presenta una proprietà
width
e una proprietà
height
, inizialmente impostate sulle dimensioni dell'oggetto in pixel. È possibile leggere i valori di tali proprietà per misurare le dimensioni dell'oggetto di visualizzazione. Potete, inoltre, specificare nuovi valori e modificare le dimensioni dell'oggetto, come segue:
// Resize a display object.
square.width = 420;
square.height = 420;
// Determine the radius of a circle display object.
var radius:Number = circle.width / 2;
La modifica di
altezza
o
larghezza
di un oggetto di visualizzazione provoca una variazione in scala dell'oggetto; in altre parole, il contenuto viene ristretto o allargato per rientrare nella nuova area definita. Se l'oggetto di visualizzazione contiene solo forme vettoriali, tali forme vengono ridisegnate in base alla nuova scala, senza alcun peggioramento della qualità. Tutti gli elementi delle immagini bitmap dell'oggetto di visualizzazione vengono modificati in scala, anziché ridisegnati. Di conseguenza, ad esempio, una foto digitale la cui larghezza e altezza vengono incrementate oltre le effettive dimensioni in pixel dell'immagine, viene “pixelizzata” e i suoi contorni risultano irregolari.
Se le proprietà
width
e
height
di un oggetto di visualizzazione vengono modificate, Flash Player e AIR aggiornano automaticamente le proprietà
scaleX
e
scaleY
dell'oggetto.
Nota:
gli oggetti TextField costituiscono un'eccezione a questo comportamento di modifica in scala. I campi di testo devono ridimensionarsi automaticamente per adattarsi alla dimensione del carattere e ai ritorni a capo del testo. Per questo motivo, dopo il ridimensionamento, i valori scaleX e scaleX vengono reimpostati su 1. Se però modificate i valori scaleX e scaleY di un oggetto TextField, i valori relativi a larghezza e altezza vengono modificati per adattarsi ai valori che specificate.
Tali proprietà rappresentano le dimensioni relative dell'oggetto di visualizzazione rispetto alle sue dimensioni originali. Le proprietà
scaleX
e
scaleY
impiegano cifre decimali per rappresentare valori percentuali. Se, ad esempio, la proprietà
width
di un oggetto di visualizzazione viene ridotta della metà rispetto alla sua dimensione originale, la proprietà
scaleX
dell'oggetto avrà un valore pari a
0,5
, a indicare il 50 percento. Se invece l'altezza viene raddoppiata, la proprietà
scaleY
avrà il valore
2
, a indicare il 200 percento.
// 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
Le variazioni delle dimensioni non sono proporzionali. In altre parole, modificando il valore
height
di un quadrato senza modificare il valore
width
, le proporzioni della figura non vengono mantenute e il quadrato si trasforma in un rettangolo. Per effettuare modifiche relative alle dimensioni di un oggetto di visualizzazione, impostare i valori delle proprietà
scaleX
e
scaleY
per ridimensionare l'oggetto, invece di impostare le proprietà
width
e
height
. Il codice seguente, ad esempio, consente di modificare la proprietà
width
dell'oggetto denominato
square
, quindi di alterare la scala verticale (
scaleY
) per farla corrispondere a quella orizzontale, in modo da mantenere le corrette proporzioni dell'oggetto.
// 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;