調整大小及縮放物件Flash Player 9 以及更新的版本,Adobe AIR 1.0 以及更新的版本 您可以用兩種方式量測及調整顯示物件的大小:使用維度屬性 (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; |
|