我重新提出了上一个问题,抱歉。我有一个应用程序,我尝试加载外部SWF。所以,我们有:
我尝试将外部SWF放入我的应用程序中,放在320x240 Canvas容器中。 有趣的代码是当我的应用程序加载外部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);}
我得到的视觉效果:
外部SWF加载在合适的位置,“看起来”是320x240暗淡。但它的宽度有点裁剪,因为如果我拉伸Flash Player,我会看到外部swf的其余部分。此外,虽然我缩小/拉伸Flash Player,但外部SWF永远不会调整大小。它总是保持固定(如果我追踪它的尺寸,我总是得到800x600,虽然我在视觉上看到320x240) - 如果我增加主应用程序的舞台宽度,这个小剪辑消失。
讨论:
我知道舞台的原始尺寸是800,这比我的应用程序的原始阶段(768)要大,但我认为,当我进行调整大小时,外部SWF的舞台必须安装在容器中。它适合,但没有看到外部SWF的一部分。就像Flash Player记得外部SWF Stage的宽度大于我应用程序的宽度......
问候。