我有一个图像加载器,我试图动态调整大小。 我想确保纵横比保持不变,以便图像不会拉伸。 当我重新加载图像(通过加载器用另一个图像重新填充它)时,会调用一个调整大小的函数。我想知道这部分调整大小代码我可能做错了什么:
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的代码上。
最佳
答案 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类可以在其源字段中动态更改并相应地加载图像。
希望有所帮助。