AS3:调整处理程序拉伸图像

时间:2010-01-03 06:44:41

标签: flex actionscript-3

我有一个图像加载器,我试图动态调整大小。 我想确保纵横比保持不变,以便图像不会拉伸。 当我重新加载图像(通过加载器用另一个图像重新填充它)时,会调用一个调整大小的函数。我想知道这部分调整大小代码我可能做错了什么:

var aspect:Number = width / height;
var cAspect:Number = _imageBoundary.width / _imageBoundary.height;

if (aspect <= cAspect) 
{
    _ldr.height = _imageBoundary.height;
    _ldr.width = aspect * _ldr.height;
}
else 
{
    _ldr.width = _imageBoundary.width;
    _ldr.height = _ldr.width / aspect;
}

_ldr.x = (_imageBoundary.width - _ldr.width) / 2 + _imageBoundary.x;
_ldr.y = (_imageBoundary.height - _ldr.height) / 2 + _imageBoundary.y;

任何想法都将不胜感激。 我将大部分内容放在bhups的代码上。

最佳

2 个答案:

答案 0 :(得分:1)

我相信第一行应该是

var aspect:Number = _ldr.content.width / _ldr.content.height;

答案 1 :(得分:0)

我认为最简单可靠的方法是使用Image类。 你可以在这里看到一个很好的例子:http://blog.flexexamples.com/2008/06/28/maintaining-an-images-aspect-ratio-on-an-image-control-in-flex/

Image类可以在其源字段中动态更改并相应地加载图像。

希望有所帮助。