您可以用兩種方式量測及調整顯示物件的大小:使用維度屬性 (
width
和
height
),或縮放屬性 (
scaleX
和
scaleY
)。
每一個顯示物件都有
width
屬性和
height
屬性,起初都以像素為單位設定為物件的大小。您可以讀取這些屬性的值,以量測顯示物件的大小。您也可以指定新值,以變更物件的大小,如下所示:
// Resize a display object.
square.width = 420;
square.height = 420;
// Determine the radius of a circle display object.
var radius:Number = circle.width / 2;
變更顯示物件的
height
或
width
會導致縮放物件的結果,表示其內容會擴展或壓縮,以配合新區域的大小。若顯示物件只包含向量形狀,這些形狀將會以新比例重新繪製,而保持原有的品質。顯示物件中任何點陣圖圖像元素都將進行縮放而不是重新繪製。例如,寬度和高度加大到超過影像中像素資訊的實際維度時,數位相片會像素化而呈現鋸齒狀。
當您變更顯示物件的
width
或
height
屬性時,Flash Player 和 AIR 也會更新該物件的
scaleX
和
scaleY
屬性。
備註:
TextField 物件對於這個縮放行為指令而言都屬於例外。文字欄位必須能自行調整大小來符合文字換行和字體大小,而在重新調整大小之後,文字欄位會將本身的 scaleX 或 scaleY 值重設為 1。不過,如果您調整 TextField 物件的 scaleX 或 scaleY 值,寬度和高度值也會隨之變更,以符合所提供的縮放值。
這些屬性代表顯示物件與其原始大小比較下的相對大小。
scaleX
和
scaleY
屬性會使用分數 (小數) 值代表百分比。例如,若變更了顯示物件的
width
,而使寬度成為原始大小的一半,則物件的
scaleX
屬性的值將會是
.5
,表示 50%;若其高度加大成兩倍,則其
scaleY
屬性的值將會是
2
,表示 200%。
// 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
大小並不是依比例變更,換句話說,若變更正方形的
height
,但未變更其
width
,其比例將不會再相同,正方形將變成矩形。若要對顯示物件的大小進行相對性變更,則可以設定
scaleX
和
scaleY
屬性的值來調整物件的大小,做為設定
width
或
height
屬性的另一種替代方式。例如,這段程式碼會變更名為
square
之顯示物件的
width
,然後改變垂直縮放比例 (
scaleY
) 以配合水平縮放比例,讓正方形大小維持原來比例。
// 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;