0

我正在使用 SWFLoader 组件加载外部 swf。正在加载的 swf 被屏蔽,因此只显示了一部分。然而,当它被加载时,swf 的实际大小 (loader.content.width/loader.content.height) 是完整的 swf,包括被屏蔽的区域。因此,加载的 swf 在 itemrenderer 中无法正确显示有没有办法获取刚刚被遮罩区域的大小,而不是获取整个 swf 内容的大小?

需要注意的一项使问题复杂化的是,这些是已经创建的 swf 文件并且其中有很多。在某些情况下,舞台的大小与遮蔽区域的大小相匹配。在其他情况下,舞台大于(或可能更小)被遮罩的区域动画剪辑以及可能的动画剪辑的实际大小(无遮罩)。

我目前正在使用加载器加载外部 swf。加载后,我通过创建 loader.content 的 bmp 来制作 swf 的副本(屏幕截图)。这样做是因为我现在不想在屏幕上显示任何动画。我正在使用 loader.content.width & loader.content.height 设置 bmp 的大小。然后我将 SWFLoader.source 设置为位图。

4

1 回答 1

0

如果在加载的 swf 中找不到遮罩,有一种蛮力的方法:将其渲染为具有透明背景的 BitmapData,然后分析像素以找出不透明区域的结束位置。如果你做得很聪明,你应该适合几十个样本(除非 swf 本身是透明的)。当然,渲染部分会非常昂贵,但也许你的应用程序允许这样的延迟......

于 2010-11-30T13:25:19.747 回答