0

我对几个 SWFLoader 有一个复杂的问题。

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

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

这是我作为独立加载的 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

4

1 回答 1

0

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

于 2010-08-14T15:10:00.117 回答