Load, resize và center 1 tấm ảnh trong AS3.

Trong ví dụ này tôi muốn giới thiệu 1 phương pháp load, thay đổi kích thước và đưa 1 tấm ảnh lọt vào giữa 1 khung định sẵn trên nền. Khi đó chúng ta không cần quan tâm đến kích thước của tấm ảnh sẽ được load lên, nó sẽ luôn luôn nằm giữa khung định sẵn. Kết quả sẽ cho ra giống như tấm ảnh dưới đây.



Trên nền chính chúng ta cần tạo 2 MovieClip. Đầu tiên là cái khung, nơi tấm ảnh được load lên sẽ nằm lọt vào. Đặt tên MovieClip này là border_mc. Tiếp theo tạo 1 MovieClip rỗng là nơi mà tấm ảnh sẽ được load lên. MovieClip này tên là load_mc. Tọa độ X, Y của load_mc sẽ bằng với tọa độ của border_mc.

Code:

var req:URLRequest = new URLRequest("myPic.jpg");
var loader:Loader = new Loader();
load_mc.x = border_mc.x;
load_mc.y = border_mc.y;
var widthRatio:Number;
var heightRatio:Number;
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoaded);
loader.load(req);
function imageLoaded(evt:Event):void{
//add image
load_mc.addChild(loader);
Bitmap(loader.content).smoothing = true;
// resize
widthRatio = loader.width / border_mc.width;
heightRatio = loader.height / border_mc.height;
if (widthRatio > heightRatio){
loader.width = border_mc.width;
loader.height = loader.height / widthRatio;
}else{
loader.height = border_mc.height;
loader.width = loader.width / heightRatio;
}
loader.scaleX = loader.scaleY;
loader.x = border_mc.width / 2 - loader.width / 2;
loader.y = border_mc.height / 2 - loader.height / 2;
}