2010-02-21 61 views
1

的SWFLoader的scaleContent不能做什麼,我想要實現:如何擴展SWFLoader組件以「適合」其中的任何大小的圖像?

<mx:SWFLoader id="img" width="600" height="400" scaleContent="true"/> 

當尺寸100x80的圖像裏面加載圖像並沒有調整到600x400。這是因爲scaleContent = true。

然後,我設置maintainAspectRatio = true。圖片確實調整爲600x400,但顯然這完全不成比例。

那麼我如何總是適合任何大小的圖像的SWFLoader的當前大小,同時保持縱橫比?調整大小的圖像可能會被裁剪,這是沒問題的。

情景:在上面的SWFloader中加載了大小爲1500x10的圖像。在這種情況下,高度(10)應調整爲400,寬度(1500)應根據高度自動調整大小。 A lot的圖像會被裁剪,這很好。

任何指針可以實現這樣的事情?

回答

1

改爲使用Flex Image Control。

以下代碼將強制圖像達到所需大小,而不管圖像大小。我相信這就是你想要的。

<mx:Image id="image1" 
     source="@Embed(source='logo.jpg')" 
     width="20" height="20"/> 

因此,無論圖片是800x600,它都會顯示爲20x20。

更多關於圖像控制信息:

Flex會將導入的圖像的圖像文件中的高度和寬度設置的高度和寬度。默認情況下,Flex不會調整圖像大小。

若要爲導入的圖像設置明確的高度或寬度,請設置圖像控件的高度和寬度屬性。設置高度或寬度屬性可防止父級調整其大小。 scaleContent屬性的默認值爲true;因此,Flex會調整圖像大小,以適應指定的高度和寬度。寬高比默認保持不變,因此圖像可能不會完全填滿指定的空間。將scaleContent屬性設置爲false以禁用縮放。將maintainAspectRatio屬性設置爲false以允許圖像填充所有可用空間,而不考慮其大小。

Full Reference:http://livedocs.adobe.com/flex/3/html/help.html?content=controls_16.html#484971

相關問題