8

情况是这样的——我有一个加载外部.swf 的shell。现在,.swf 是 800x600,但它是一个动画片段,并且有一些元素延伸到舞台之外。当我将 .swf 加载到 shell 中并调用它的 width 属性时,它返回 1200 - 因为它包括脱离舞台的元素。

这不是我想要的——理想情况下,会有两个属性,一个返回“计算的宽度”,一个返回“默认宽度”。这些属性是否存在,如果不存在,最好的解决方法是什么?

4

2 回答 2

15

由创建它的 FLA 定义的已加载 SWF 的宽度和高度可以Loader在您已将 SWF 加载到的对象中找到。

swfLoader.contentLoaderInfo.width
swfLoader.contentLoaderInfo.height

这将始终显示 FLA 属性中定义的尺寸。如果有任何图像、MovieClips 或您从舞台上延伸出来的东西,这没有什么区别。

stage.stageWidth和属性将stage.stageHeight始终返回舞台的宽度,舞台始终是最顶部的 SWF。换句话说,它将始终代表外壳舞台的尺寸。Flash 应用程序中只有一个阶段。

于 2008-10-29T14:46:41.267 回答
0

Mark 很可能是正确的,内容加载器信息对象将包含正确的宽度和高度。我从来没有检查过自己,所以我不能保证。文档说“名义”并将其与“实际”进行对比,因此看起来很合理。

还有其他几个选项。您可以屏蔽外部 swf。创建一个与舞台大小相同的蒙版,并将所有内容放在其下方。另一个想法是创建一个基于矩形形状的动画剪辑,将其 alpha 设置为 0 将其放置在 x:0, y:0 并将其宽度和高度与舞台相匹配。给它一个实例名称,然后在加载它时使用该值作为大小。

于 2008-10-29T23:15:52.580 回答