flex:麻烦调整大小并定位SWFLoader

时间:2010-08-06 13:34:48

标签: flex flash resize swfloader

我有几个SWFLoader的复杂问题。

我有一个使用SWFLoader加载swf的应用程序。加载的swf加载另一个swf(只是编译的fla)。我在我加载的swf中添加了所有调整大小和位置逻辑,它在事件调整大小时运行良好,但是当我尝试在我的swfs applicationComplete中运行相同的代码时,它会失败。如果我将swf作为standanlone运行,启动时相同的代码效果很好,但由于某种原因,当我将其加载到我的应用程序中时,比例会有所不同。

我只是将它的宽度和高度设置为浏览器大小,所以除了比例之外的所有内容都是一样的!

这是我从我加载的swf作为独立的跟踪: swfLoader:1435 742 FlexLoader:1319.1 742 1.0305555555555554 1.0305555555555554

这是在我的应用程序中加载时来自同一个加载的swf: swfLoader:1435 742 FlexLoader:1159.55 742 0.9053196681307955 0.9053196681307955

swfLoader是我加载的swf的swfloader加载我编译的fla。这就是我需要调整大小并定位到中心的地方。接下来的数字是宽度和高度。 FlexLoader是swfLoaders加载器(或者如果你愿意的话)。数字是宽度,高度,scaleX和scaleY。

正如您所看到的,大小相同(对于加载的swfs应用程序也是如此),但是比例不同。两个刻度都是用1280和高度720计算的,这是我编译的fla的大小。

我根本无法解决规模问题的唯一原因是我无法找到编译fla的准确宽度以使其居中(application.width - loadedSwf.width / 2)所以如果有人知道更好的话找到我会非常感谢的方式!! :)

我没有得到的部分是为什么尺度不同?我错过了哪一部分? 我完全迷失了,并且一直试图解决这个问题很长一段时间:p

1 个答案:

答案 0 :(得分:0)

与普通Flash显示对象一样,您必须根据项目的内部内容设置项目的大小。如果您使用SWF(SWFa)并将其加载到另一个(SWFb),并让SWFb告诉SWFa更宽更高,Flash不会扩展SWFa的阶段,它会缩放SWFa的阶段,除非您已将SWFa的StageScaleMode调整为StageScaleMode.NO_SCALE时。如果你已经这样做了,你仍需要在调整大小时重新定位SWFa舞台上的所有项目,以便在舞台增大/缩小时项目保持居中。