我有一個應用程序嘗試加載外部SWF。所以,我們有:Flex:無法調整外部加載的SWF內容的大小
- 我的應用程序:舞臺的尺寸是768x1280。 ScaleMode = EXACT_FIT。
- 外部SWF:它的舞臺是800x600的另一個應用程序。 ScaleMode = EXACT_FIT。
問題是雖然我應用「scaleX,scaleY」,更改其寬度等,但外部SWF不會修改其大小。 我也嘗試將其插入Canvas容器(如「如何調整外部SWF以適應容器?」),但它沒有解決我的問題。 有趣的一段代碼是當外部SWF是由我的應用程序加載:
private function onLoadedApp(evt:Event):void{
stage.scaleMode = StageScaleMode.EXACT_FIT;
trace("Loading Application..");
var loaderInfo:LoaderInfo = evt.target as LoaderInfo;
loaderInfo.removeEventListener(Event.COMPLETE, onLoadedApp);
trace(loaderInfo.loader.content);
var swfApplication:SpriteUIComponent = new SpriteUIComponent(evt.target.loader.content);
if(SWFContainer.width < swfApplication.explicitWidth){
var coef:Number = SWFContainer.width/swfApplication.explicitWidth;
swfApplication.scaleX = coef;
swfApplication.scaleY = swfApplication.scaleX;
}
SWFContainer.addElement(swfApplication);
}
我也試圖通過向的SWFLoader做到這一點,但我雖然加入了external.swf的內容沒有改變其原來的大小「scaleContent」參數。
視覺效果我:
外部SWF加載在合適的位置上,它「似乎」有320×240暗淡。但是它的寬度有點裁剪,因爲如果我拉伸Flash Player,則可以看到外部swf舞臺的其餘部分。此外,雖然我縮小/拉伸Flash Player,但外部SWF從未被調整大小。它總是保持不變(如果我追蹤它的尺寸,我總是會得到800x600,儘管我可以看到320x240) - 如果我增加主應用程序的舞臺寬度,這個小剪輯會消失。
討論:
我才知道,原來舞臺的外形尺寸是800,這比我的應用程序(768)的初始階段更大的,但我想,當我做大小調整,外部SWF的舞臺必須裝在容器中。它是合適的,但外部SWF的一部分是看不到的。這就像Flash Player記得外部SWF Stage的寬度大於我的應用程序的一個...
在此先感謝。
顯示一些代碼。 – 2011-05-11 12:50:06
我剛剛用一段代碼改變了描述。謝謝。 – Manel 2011-05-11 21:37:33
嗨!你找到了解決問題的辦法嗎?我目前有完全相同的問題:) – 2012-04-29 11:55:12