2012-01-07 47 views
0

现在我保存为文本格式,并且出现错误:TypeError:错误#1009:无法访问空对象引用的属性或方法。 at SaveImage/onClick()[/ Users/VVT/Documents/Adob​​e Flash Builder 4.6/SuperDraw/src/SaveImage.as:40] 我想更改我的代码,以便保存为PNG格式?如何将图像保存为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"); 
    } 
} 
+0

http://stackoverflow.com/questions/4211852/as3-png-encoder – AsTheWormTurns 2012-01-07 08:57:25

+0

OK,链接帮我一点点。但我仍然无法保存到PNG,使用我的btnSave ... – PhatToni 2012-01-07 09:34:02

+0

希望这有助于:http://cookbooks.adobe.com/post_Save_a_local_image_file__JPEG_or_PNG__from_an_imag-8406.html – AsTheWormTurns 2012-01-07 09:43:23

回答

0

您有一个名为file属性,但要创建并在这行你的构造函数初始化的具有相同名称的局部变量:

var file:FileReference = new FileReference(); 

别担心,这些错误发生。删除var并键入以摆脱空引用错误。

file = new FileReference(); 

将图像保存为PNG,在as3corelib库,该库在this comment链接的questionthis answer提到的,看起来很有希望。导入库,让它编码您的BitmapData:

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

如何安装as3corelib,我一直在测试,我无法理解我应该如何安装as3corelib。有人可以解释/告诉我该怎么做? – PhatToni 2012-01-08 09:55:49

+0

@VVTinho我想你必须将'as3corelib.swc'添加到ide中的库路径中。我从来没有使用Flashbuilder,所以我不知道它是如何完成的。一个快速和肮脏的方法将简单地将'com'目录(在zip文件中的'src'中找到)复制到项目的根目录中。 – Kapep 2012-01-08 12:03:55

+0

好的,谢谢,我会努力做到这一点... – PhatToni 2012-01-08 14:42:32

相关问题