調整大小及縮放物件

Flash Player 9 以及更新的版本,Adobe AIR 1.0 以及更新的版本

您可以用兩種方式量測及調整顯示物件的大小:使用維度屬性 (widthheight),或縮放屬性 (scaleXscaleY)。

每一個顯示物件都有 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;

變更顯示物件的 heightwidth 會導致縮放物件的結果,表示其內容會擴展或壓縮,以配合新區域的大小。若顯示物件只包含向量形狀,這些形狀將會以新比例重新繪製,而保持原有的品質。顯示物件中任何點陣圖圖像元素都將進行縮放而不是重新繪製。例如,寬度和高度加大到超過影像中像素資訊的實際維度時,數位相片會像素化而呈現鋸齒狀。

當您變更顯示物件的 widthheight 屬性時,Flash Player 和 AIR 也會更新該物件的 scaleXscaleY 屬性。

備註: TextField 物件對於這個縮放行為指令而言都屬於例外。文字欄位必須能自行調整大小來符合文字換行和字體大小,而在重新調整大小之後,文字欄位會將本身的 scaleX 或 scaleY 值重設為 1。不過,如果您調整 TextField 物件的 scaleX 或 scaleY 值,寬度和高度值也會隨之變更,以符合所提供的縮放值。

這些屬性代表顯示物件與其原始大小比較下的相對大小。scaleXscaleY 屬性會使用分數 (小數) 值代表百分比。例如,若變更了顯示物件的 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,其比例將不會再相同,正方形將變成矩形。若要對顯示物件的大小進行相對性變更,則可以設定 scaleXscaleY 屬性的值來調整物件的大小,做為設定 widthheight 屬性的另一種替代方式。例如,這段程式碼會變更名為 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;