检查shape是否是as3中的位图

时间:2014-01-02 04:52:51

标签: actionscript-3 flash svg bitmap

我在舞台上有很多单帧动画片段。

其中一些是使用flash中的矢量形状绘制的。

其中一些是从外部.png文件加载的位图。请注意,在这种情况下,显示对象的类型是形状,而不是位图类型。

enter image description here

我想将包含矢量形状的动画片段导出到svg文档。以及将bitmap映射到bitmapData的动画片段。

问题是我无法区分动作中的2。

使用AS Linkage将形状转换为Bitmap类型时,我只取得了成功。然而,这并不理想,因为我们必须手动检查所有动画片段。有没有办法区分矢量形状和位图形状?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。 确保其中没有GraphicsBitmapFill就足够了我的用例

for(var i :int = 0; i < target.numChildren; i++) {
    var s:Shape = target.getChildAt(i) as Shape;
    if (s) {
        var g:Vector.<IGraphicsData> = s.graphics.readGraphicsData();
        for(var j:int = 0; j < g.length;j++)    {
        var bitmap:GraphicsBitmapFill = g[i] as GraphicsBitmapFill;
            if (bitmap) {
                hasBitMapChildren = true
            }
        }
    }
}