调整加载的SWF大小以适应画布

3

一个 .fla 文件的大小为 500 x 300。里面的内容会从这个 500 x 300 的舞台之外移动,看起来就像是隐藏或者移出了屏幕。

将 .fla 编译后,可以通过 SWFLoader 在 Flex 中加载:

<mx:Conainer width="500" height="300">
       <mx:SWFLoader width="100%" height="100%" />
</mx:Conainer>

Flex中,加载的.swf文件显示在500 x 300容器外面。

如何使只有容器内部的内容可见?


你想将swf调整大小以使其在画布内完全可见,还是你想遮罩在画布外的所有内容? - Adrian Pirvulescu
Adrian,针对这个问题,我想屏蔽画布外部的内容。但是,如果您不介意的话,我也想了解您之前提到的解决方案,以供我个人学习。谢谢。 - Tomasz Iniewicz
3个回答

1

好的,我搞定了。

<mx:Canvas id="swfHolder" mask="{maskCanvas}">
        <mx:SWFLoader id="swffer" scaleContent="true" />
</mx:Canvas>

<mx:Canvas id="maskCanvas" backgroundColor="#000000"/>

诀窍是使用“mask”属性。请注意执行“遮罩”的对象必须设置backgroundColor属性。我发现这篇文章很有帮助:链接文本

0
<mx:Conainer width="500" height="300" clipContent="true">
       <mx:SWFLoader width="100%" height="100%" />
</mx:Conainer>

使用 "clipContent" 属性

Canvas 的 Flex 帮助:

clipContent:Boolean [读写]

如果此容器的子项的位置和/或大小超出此容器的边界,则是否应用剪辑掩码。如果为 false,则当此容器的子项移动或调整大小超出此容器的边界时,它们仍然可见。如果为 true,则此容器的子项将被裁剪。

如果 clipContent 为 false,则此容器的滚动被禁用,并且不会出现滚动条。如果 clipContent 为 true,则当容器的子项超出容器的边框时,通常会出现滚动条。有关滚动条外观的其他控制,请参阅 horizontalScrollPolicy 和 verticalScrollPolicy。


不幸的是,这并不起作用。.swf 仍然从 SWFLoader 和容器中输出。 :( - Tomasz Iniewicz
好的,所以您有一个 fla 文件,其内容超过了 500x300 的大小?那么您可以通过在 fla 中添加遮罩来使内容在原始大小外被遮蔽。 - Adrian Pirvulescu
Adrian,我也尝试过这个。现在我正在尝试使用“mask”属性。 - Tomasz Iniewicz

0
请在SWFLoader标签中使用 scaleContent="true"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接