代码之家  ›  专栏  ›  技术社区  ›  matt lohkamp

加载SWF级的尺寸

  •  8
  • matt lohkamp  · 技术社区  · 16 年前

    情况是这样的-我有一个外壳可以加载一个外部的.swf。现在,这个.swf是800x600,但它是一个动画作品,并且有一些元素可以扩展到舞台之外。当我将.swf加载到shell并调用它的width属性时,它返回1200,因为它包含了从阶段中分离出来的元素。

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

    2 回复  |  直到 14 年前
        1
  •  15
  •   Matt    16 年前

    根据创建时使用的FLA定义的加载SWF的宽度和高度可以在 Loader 将SWF加载到其中的对象。

    swfLoader.contentLoaderInfo.width
    swfLoader.contentLoaderInfo.height
    

    这将始终显示FLA属性中定义的尺寸。如果你在舞台上看到了任何图像、动画片或是什么,那都没有什么区别。

    这个 stage.stageWidth stage.stageHeight 属性将始终返回阶段的宽度,阶段始终是最顶部的SWF。换言之,它将始终代表外壳级的尺寸。闪存应用程序中只有一个阶段。

        2
  •  0
  •   James Fassett    16 年前

    马克很可能是对的 content loader info 对象将包含正确的宽度和高度。我从来没有检查过自己,所以我不能保证。医生说是“名义上的”,并将其与“实际的”进行对比,所以这似乎是合理的。

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