火花图像的contentWidth和contentHeight是否等效?
我可以获取图像组件本身的大小,以及sourceWidth和sourceHeight属性来获取图像的未缩放大小。
但我无法计算出图像组件中显示的源的缩放图像宽度和高度。
非常感谢任何帮助。
答案 0 :(得分:2)
只是想解决这个问题。我发现一个适当的解决方案是使用IMAGE_ID.transform.pixelBounds.height
(或宽度)。请注意,直到updateComplete
事件触发图像后才会设置此项。不知道为什么FLEX没有简单的scaledWidth属性。
答案 1 :(得分:1)
尝试扩展Spark Image
组件以包含2个新的只读属性,以提供缩放宽度和高度,相当于contentWidth
和contentHeight
以下内容将创建2个新的可绑定属性,以返回Spark Image
组件内显示的图像的实际缩放宽度和高度。
/**
* Returns the width of the image display taking into account the actual
* constraints of the container. If no scaling has occurred the actual
* width of the control is returned.
*/
[Bindable(event="scaledWidthChanged")]
public function get scaledWidth():Number
{
var num:Number = this.width;
if (scaleMode == "letterbox")
{
try
{
if ( (width > 0) && (sourceWidth < sourceHeight) )
{
num = (sourceWidth/sourceHeight) * width;
}
}
catch(e:Error)
{
num = this.width;
}
}
return num;
}
/**
* Returns the height of the image display taking into account the actual
* constraints of the container. If no scaling has occurred the actual
* height of the control is returned.
*/
[Bindable(event="scaledHeightChanged")]
public function get scaledHeight():Number
{
var num:Number = this.width;
if (scaleMode == "letterbox")
{
try
{
if ((height > 0) && (sourceHeight < sourceWidth))
{
num = (sourceHeight/sourceWidth) * height;
}
}
catch(e:Error)
{
num = this.height;
}
}
return num;
}