이 답변 주셔서 감사합니다 정말 감사! 그러나 이것은 불행히도 해결책이 아닙니다. 높이를 너비와 동일하게 설정하기 때문입니다. 이 경우 두 레이블은 이미지에 더 가깝지만 갈 곳이 아닙니다.
그런데 경계 상자와 함께 이미지의 크기를 올바르게 조정할 수있는 방법을 찾을 수있었습니다. 주요 아이디어는 이미지를 컨테이너에 넣고 컨테이너 크기를 원본 이미지 크기로 나눈 비율에 따라 이미지 크기를 조정하는 것입니다.
그러면 이미지가 컨테이너를 완전히 채우고 컨테이너의 너비를 조정하여 원하는 배율을 설정할 수 있습니다. 여기
완벽하게 작동 내 코드이며, 정말 미래에 다른 사람을 도울 수 있기를 바랍니다 :
<?xml version="1.0" encoding="utf-8"?>
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
import spark.components.Image;
private var img:Image = new Image();
private function init():void {
drawImg("assets/image.png");
}
private function drawImg(src:String):void {
img.source = src;
img.scaleMode = "letterbox";
img.smooth = true;
imgHolder.addElement(img);
img.addEventListener(FlexEvent.READY, imgStatus);
}
private function imgStatus(e:FlexEvent):void {
var imgw:Number = e.currentTarget.bitmapData.width;
var imgh:Number = e.currentTarget.bitmapData.height;
var ratio:Number = Number(imgHolder.width/imgw);
img.width = imgw*ratio
img.height = imgh*ratio
}
]]>
</fx:Script>
<s:VGroup width="100%" horizontalAlign="center">
<s:Label text="Foo" />
<s:HGroup id="imgHolder" width="30%" />
<s:Label text="Bar" />
</s:VGroup>
먼저 내가 항상 널을 얻었다 객체이므로, 이미지를 완전히로드해야한다는 것을 알았으므로 이제는 완벽하게 작동합니다.
다시 원하는 너비 속성은 이미지가 아닌 컨테이너에서 설정할 수 있습니다.
다음은 결과가 표시된 스크린 샷입니다.