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

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

有帮助吗?

解决方案

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

swfLoader.contentLoaderInfo.width
swfLoader.contentLoaderInfo.height

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

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

其他提示

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top