如何叠加两个图像并将其保存为AN图像? (Flash CS5)

时间:2013-03-28 03:27:32

标签: image flash overlay flash-cs5

我是Flash的总菜鸟。我不是程序员。与photoshop(图像设计)一样好。

这是我的问题。我找到了一个简单的绘图应用程序并对其进行了修改,只修改了界面,而不是编码。

它提供了一个“保存按钮”,可以将绘图(在 MovieClip 上绘制)保存到磁盘驱动器中。然后我修改了它,在 MovieClip a Graphic 之上添加了另一层。但是当我尝试保存它时,它只将 MovieClip 保存为.png图像。我想要的是它将 MovieClip Graphic 一起保存在一个.png之上图片。我怎么能这样做?

如果我将代码提供给“保存按钮”,可能会更有帮助吗?

** / *保存* /

    private function export():void
    {
        var bmd:BitmapData = new BitmapData(600, 290);

        bmd.draw(board);

        var ba:ByteArray = PNGEncoder.encode(bmd);


    private function completeHandler(event:Event):void {
        var loader:URLLoader = URLLoader(event.target);
        trace("completeHandler: " + loader.data);
    }


    private function saveSuccessful(e:Event):void
    {
        saveDialog = new SaveDialog();

        addChild(saveDialog);

        saveDialog.closeBtn.addEventListener(MouseEvent.MOUSE_UP, closeSaveDialog);
    }

    private function closeSaveDialog(e:MouseEvent):void
    {
        removeChild(saveDialog);
    }

    private function save(e:MouseEvent):void
    {
        export();
    }**
编辑:我已经把'bmd.draw(topLayer);'在第一次draw()调用下,但是当我发布预览时,它会显示“访问未定义的属性topLayer”。我首先检查了它的属性,它提到了这个'topance:topLayer'并且它是一个Graphic。

1 个答案:

答案 0 :(得分:1)

检查代码。某个地方应该有fileReference.save(someOtherName)fileReference可能有不同的名称,但会在FileReference=new FileReference()附近声明。然后,跟踪上面的someOtherName,它应该是另一个变量的PNGEncoder.encode()的输出,该变量应该是BitmapData类型。找出在该位图数据上绘制的内容,将会有一行bitmapData.draw(someMovieClip)。找出someMovieClip是否只是程序中使用的图层。你可以在那个之后添加一个类似的线来绘制你的形状(你应该有它的名字,以便你可以在代码中引用它),这将在你绘制的东西上绘制你的Graphic。

如果您绘制的整个图形可以放在一个屏幕中,只需截取正在进行的应用程序的屏幕截图,将其加载到Photoshop中,并在您保存的任何内容之前正确地使用图形。或者,使用现有的已保存图像作为背景图层,将屏幕截图设置为前景,清除不是图形的区域,并获得更多乐趣。

编辑:好的,它是:你有export()功能(在你的copypasting中不完整,BTW),以及我提到的所有相关部分。有一个draw()电话,一个PNGEncoder.encode()电话和一个BitmapData对象。您应该在第一次draw()调用后添加另一行代码,如下所示:

bmd.draw(yourGraphic);

YourGraphic是您在MovieClip上方手动添加的图形的名称,您可以在舞台上的属性中编辑该图形。应该这样做。

回复:我已将bmd.draw(topLayer);置于第一个draw()调用之下,但当我发布预览时,它会显示“访问未定义属性topLayer”。我首先检查了它的属性,它提到了这个'topance:topLayer'并且它是一个Graphic。