加载的swf阶段的尺寸

时间:2008-10-29 00:45:25

标签: actionscript-3 flash external

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

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

2 个答案:

答案 0 :(得分:15)

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

swfLoader.contentLoaderInfo.width
swfLoader.contentLoaderInfo.height

这将始终显示FLA属性中定义的尺寸。如果有任何图像,MovieClip或者你从舞台上延伸出来的话,它就没有区别了。

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

答案 1 :(得分:0)

Mark很可能是content loader info对象包含正确的宽度和高度。我从来没有检查过自己,所以我无法保证。文档说'名义'并将其与'实际'进行对比,因此它似乎是合理的。

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