Actionscript 3 如何将图像保存为PNG格式?

Actionscript 3 如何将图像保存为PNG格式?,actionscript-3,flash-builder4.5,Actionscript 3,Flash Builder4.5,现在我保存为文本格式,我得到一个错误:TypeError:error#1009:无法访问null对象引用的属性或方法。 在SaveImage/onClick()[/Users/VVT/Documents/adobeflashbuilder4.6/SuperDraw/src/SaveImage.as:40] 我想更改我的代码以便保存为PNG格式 public class SaveImage extends Sprite { private var btnSave:buttonSave;

现在我保存为文本格式,我得到一个错误:TypeError:error#1009:无法访问null对象引用的属性或方法。 在SaveImage/onClick()[/Users/VVT/Documents/adobeflashbuilder4.6/SuperDraw/src/SaveImage.as:40] 我想更改我的代码以便保存为PNG格式

public class SaveImage extends Sprite

{
    private var btnSave:buttonSave;
    //private var ba:ByteArray;
    private var file:FileReference;

    public function SaveImage()
    {
        // Skapar min knapp.
        var btnSave:buttonSave = new buttonSave();
        addChild(btnSave);
        btnSave.x = 400;
        btnSave.y = 440;

        btnSave.addEventListener(MouseEvent.CLICK, onClick);

        var file:FileReference = new FileReference();           
    }

    private function onClick(evt:MouseEvent):void 
    {
        //var ba:ByteArray = file.encode(bitmapData);
        //file.save(file);
        file.save("some text. \nsome more text", "actionsnippet.txt");
    }
}

您有一个名为
file
的属性,但您正在构造函数的此行中创建并初始化一个同名的局部变量:

var file:FileReference = new FileReference(); 
别担心,这些错误会发生的。删除
var
并键入以消除该空引用错误

file = new FileReference();

为了将图像保存为png,链接中的中提到的库看起来非常有希望。导入库并让它对bitmapdata进行编码:

file.save(PNGEncoder.encode(bitmapData));

好的,这个链接帮了我一点忙。但我仍然无法保存到PNG,使用我的btnSave…希望这有帮助:好的,链接帮助我一点。但我仍然无法保存到PNG,使用我的BTNSave如何安装as3corelib,我一直在测试,我不明白我应该如何安装as3corelib。有人能解释一下/告诉我怎么做吗?@VVTinho我想你必须将它添加到ide中的库路径中
as3corelib.swc
。我从未使用过Flashbuilder,所以我不知道它到底是如何完成的。一种快速而肮脏的方法是将
com
目录(在zip文件的
src
中找到)复制到项目的根目录中。
BitmapData.encode()
也可以对PNG进行编码,并且不需要任何外部库。您还可以使用
加载程序
解码PNG。JPEG也受支持。