如何将加载的SWF转换为bitmapdata?

时间:2011-12-23 16:23:50

标签: actionscript-3 flash

我使用loader类将一些png文件加载到舞台上。加载文件后调用的函数类似于:

private function IconLoaded(e:Event):void
        {

    percentLoaded_txt.visible = false;
    iconLoader = Loader(e.target.loader);

    icone = Bitmap(iconLoader.content);
    icone.smoothing = true;

    var _icon: imgBox;
    _icon = new imgBox(_MAX_WIDTH, _MAX_HEIGHT, icone,0);//  new imgHelper(_bitmap);

    _icon.x = _main.cena.width/2;
    _icon.y = _main.cena.height/2;
        addChild(_icon);
}

imgBox是一个自动调整位图大小的类,也允许添加边框,例如......


我的代码工作正常,加载PNG文件。但我也希望能够加载swf文件。

我该怎么做?

感谢。

2 个答案:

答案 0 :(得分:2)

您无法将swf作为位图数据加载,因为它们是完全不同的类型。您可以做的是加载swf并将其添加为影片剪辑的子项以显示其内容。 这个link显示了如何加载swf。加载后,您只需将其添加为MovieClip的子项,并将此动画片段添加到舞台以显示其内容。

答案 1 :(得分:2)

您需要将加载的SWF副本复制到位图中。

    function copyIt(obj:DisplayObject):Bitmap {
        var bd:BitmapData = new BitmapData( obj.width, obj.height );
        bd.draw(obj);
        return new Bitmap(bd);
    }


    var bmpCopy:Bitmap = copyIt(mySWF);
    addChild(bmpCopy);