2009年1月4日 星期日

[怪招]AS3的mask

AS3的mask並不會改變原物件的長寬;
舉例來說,一個長寬500x500的A_mc,被一個200x200的B_mc所mask,
AS2的時候,trace會發現A_mc的長寬變成200x200了,
但AS3則仍然trace出500x500。
這問題在需要對A_mc縮放的時候,會有大麻煩,
例如我想放大到寬度是1000px,則AS2會放大5倍,但AS3只會放大2倍;
試過DisplayObject的getRect()跟getBounds(),都是trace出500x500,
Vanilla找到一個怪招:
bitmapData.draw(A_mc);
trace(bitmapData.getColorBoundsRect(0xff000000,0xff000000,true));
就會回報正確的長寬了!
感謝Vanilla!

沒有留言: