使用as3调整图像大小

时间:2010-06-23 12:00:22

标签: image actionscript-3 flash resize

我正在构建一个投资组合网站,当用户点击一个thumnail时,它会动态加载大型高分辨率图像。但是,在调整原始图像的质量以适应当前浏览器时,我遇到了问题。

目前我只是调整宽度和宽度。图像的高度属性按比例宽度到舞台,工作正常使其适合,但我无法弄清楚如何保持图像质量?我是否需要将其作为位图加载并重绘/平滑或类似的东西?

这是我目前正在使用的相应代码:

var req:URLRequest = new URLRequest("images/101.jpg");
var loader:Loader = new Loader();

var widthRatio:Number;
var heightRatio:Number;

function imageLoaded(e:Event):void
{
 //add image to stage
 addChild(loader);


 // resize proportionally
 if (loader.width > stage.stageWidth){
  widthRatio=loader.width/stage.stageWidth;
  trace(widthRatio)
  trace(loader.width);
 }
 if (loader.height > stage.stageHeight){
  heightRatio=loader.height/stage.stageHeight;
  trace(heightRatio)
  trace(loader.height)
 }

 if (widthRatio > heightRatio){
  loader.width = stage.stageWidth;
  loader.height = loader.height/widthRatio;
 } else {
  loader.height = stage.stageHeight;
  loader.width = loader.width/heightRatio;
 }

 //centre on stage
 loader.x=stage.stageWidth/2 - loader.width/2;
 loader.y=stage.stageHeight/2 - loader.height/2;

}

loader.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoaded);
loader.load(req);

1 个答案:

答案 0 :(得分:6)

查看Bitmap smoothing

您的LoaderBitmapsmoothing。将其设为function imageLoaded(e:Event):void { //add image to stage addChild(loader); Bitmap(loader.content).smoothing = true; // ... 为真。

{{1}}

它使图像有点模糊,但在大多数情况下它是一个显着的改进。