SWFLoader的 scaleContent 无法完成我想要实现的目标:
<mx:SWFLoader id="img" width="600" height="400" scaleContent="true"/>
当在其中加载尺寸为100x80的图像时,图像不会调整为600x400。那是因为scaleContent = true。
然后,我设置maintainAspectRatio = true。图像确实调整到600x400,但很明显,它完全不成比例。
那么在保持宽高比的同时,始终如何使任何尺寸的图像适合SWFLoader的当前尺寸?可以裁剪已调整大小的图像,这是可以的。
SCENARIO:在上面的SWFloader中加载了大小为1500x10的图像。在这种情况下,高度(10)应调整为400,宽度(1500)应根据高度自动调整大小。将裁剪图像的批次,这很好。
关于如何实现这样的事情的任何指示?
答案 0 :(得分:1)
改为使用Flex Image Control。
以下代码会将图像强制为您想要的尺寸,而不管图像尺寸如何。我相信这就是你想要的。
<mx:Image id="image1"
source="@Embed(source='logo.jpg')"
width="20" height="20"/>
因此,无论该图像是800x600,它都将显示为20x20。
有关图像控制的更多信息:
Flex将导入图像的高度和宽度设置为图像文件中的高度和宽度设置。默认情况下,Flex不会调整图像大小。
要为导入的图像设置显式高度或宽度,请设置其Image控件的高度和宽度属性。设置height或width属性会阻止父级调整大小。 scaleContent属性的默认值为true;因此,Flex会调整图像的大小,使其适合指定的高度和宽度。默认情况下保持纵横比,因此图像可能无法完全填充指定的空间。将scaleContent属性设置为false以禁用缩放。将maintainAspectRatio属性设置为false,以允许图像填充所有可用空间,无论其大小如何。
完整参考:http://livedocs.adobe.com/flex/3/html/help.html?content=controls_16.html#484971