2012-01-07 2 views
0

이제 텍스트 형식으로 저장하고 오류가 발생했습니다. TypeError : 오류 # 1009 : null 개체 참조의 속성이나 메서드에 액세스 할 수 없습니다. SaveImage/onClick() [/ Users/VVT/Documents/Adobe 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

+0

확인, 링크가 나에게 조금 도움이됩니다. 하지만 여전히 내 btnSave를 사용하여 PNG로 저장할 수 없습니다 ... – PhatToni

+0

희망이 도움이 : http://cookbooks.adobe.com/post_Save_a_local_image_file__JPEG_or_PNG__from_an_imag-8406.html – AsTheWormTurns

답변

0

당신은 file라는 이름의 속성이, 아직 만들고 생성자이 줄을 같은 이름의 지역 변수를 초기화하는 :

var file:FileReference = new FileReference(); 

이 걱정하지 마세요, 그 실수가 발생합니다. var을 제거하고 입력하여 null 참조 오류를 제거하십시오.

file = new FileReference(); 

this comment에 링크 된 questionthis answer에 나와있는 as3corelib 라이브러리, 매우 유망한 보이는, PNG로 이미지를 저장합니다. 라이브러리를 가져 와서 그것이 당신의 BitmapData를 인코딩 할 수 :

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

as3corelib을 설치하는 방법은 테스트를 거쳤으며 어떻게 as3corelib를 설치해야하는지 이해할 수 없습니다. 누군가가 설명해 줄 수 있나요? – PhatToni

+0

@VVTinho ide의 라이브러리 경로에'as3corelib.swc '을 추가해야 할 것 같네요. Flashbuilder를 사용한 적이 없으므로 정확히 어떻게 완료되었는지는 알 수 없습니다. 빠르고 더러운 방법은'com' 디렉토리 (zip 파일의'src')를 프로젝트의 루트 디렉토리에 복사하는 것입니다. – Kapep

+0

좋아, 고마워, 그 일을하려고 할거야 ... – PhatToni