Как сохранить изображение в формате PNG? - PullRequest
0 голосов
/ 07 января 2012

Теперь я сохраняю в текстовом формате, и я получил ошибку: Ошибка типа: Ошибка # 1009: Невозможно получить доступ к свойству или методу ссылки на пустой объект.в SaveImage / onClick () [/ Users / VVT / Documents / Adobe Flash Builder 4.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");
    }
}

1 Ответ

0 голосов
/ 07 января 2012

У вас есть свойство с именем file, но вы создаете и инициализируете локальную переменную с тем же именем в этой строке вашего конструктора:

var file:FileReference = new FileReference(); 

Не беспокойтесь, эти ошибки случаются.Удалите var и введите, чтобы избавиться от этой ошибки нулевой ссылки.

file = new FileReference();

Чтобы сохранить изображение в формате png, библиотека as3corelib , которая упоминается в этот ответ на вопрос , связанный с этим комментарием , выглядит довольно многообещающе.Импортируйте библиотеку и дайте ей закодировать ваши растровые данные:

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