2012-01-07 46 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

相關問題