2009年11月30日 星期一

casalib-RatioUtil-全版縮放

此篇文章主要介紹如何應用org.casalib.util.RatioUtil快速達到全版效果。


RatioUtil這類別主要是一些有關比例縮放的方法,全版縮放會用到裡面的一個靜態方法scaleToFill();先看看全版縮放會遇到的問題


下圖的可愛女孩是依當stage resize時依寬度來縮放:




但當您把stage的寬度拉小時,圖片的高度會不夠,下方會出現穿幫情況:





我們換成當stage resize時依高度來縮放時,會遇到寬度不夠的問題:







這時問題就來了,需要寫個判斷式來判斷當您的圖片高度不夠時,依高作縮放,當您圖片寬度不夠時,依寬來作縮放,這時可以直接用scaleToFill()這個方法,快速又放便如何使用:

/**
size:依範例為可愛小女孩的Rectangle。
bounds: 依範例為stage的Rectangle。
snapToPixel: 是否取整數,預設是true。
回傳回來的類型為Rectangle
*/
static function scaleToFill(size:Rectangle, bounds:Rectangle, snapToPixel:Boolean = true):Rectangle

var size:Rectangle = new Rectangle(0, 0, girl_mc.width, girl_mc.height);
var bounds:Rectangle = new Rectangle(0, 0, stage.stageWidth, stage.stageHeight);
var _Rectangle:Rectangle = RatioUtil.scaleToFill(size, bounds);

girl_mc.width = _Rectangle.width;
girl_mc.scaleY = girl_mc.scaleX;


範例下載:請按此

2 則留言:

  1. 網誌管理員已經移除這則留言。

    回覆刪除
  2. 網誌管理員已經移除這則留言。

    回覆刪除