예전 Flex 2~3버전에서 데이터를 다운받기 위해서는 ByteArray 형식을 특정 웹페이지에 데이터를 업로드 시키고 해당 웹페이지에서 파일다운로드 시키는 방식을 이용했다.
파일데이터를 웹프로그램에서 HTTP 헤더를 바이너리로 지정해야만 했기때문.
하지만 4버전부터는 Flex의 ByteArray를 웹페이지를 거치지 않고 직접 다운로드 가능하다.
이는 ByteArray를 FileReference의 save 함수의 인자로 직접넣는게 가능해졌기 때문이다.

이를 응용하면 Flex에서 작성된 데이터를 ByteArray 형식으로 변환해 다운로드 할 수 있다.
아래는 화면을 캡춰해서 PC로 바로 저장하는 화면이다. 

캡춰후 다운로드

화면캡춰&다운로드 버튼을 누르면 파일을 저장하는 화면이 나타난다.

 
위 화면처럼 화면캡춰, PDF저장, 이미지 편집, 사운드 파일등 ByteArray로 데이터처리하는 모든 것들을 즉시 파일로 저장가능하다.

public function saveAsImage(obj:UIComponent, name:String = ''):void {
FileReference fileReference = new FileReference();
var pngSource:BitmapData = new BitmapData (obj.width, obj.height);
pngSource.draw(obj);
var pngEncoder:PNGEncoder = new PNGEncoder();
var pngData:ByteArray = PNGEncoder.encode(pngSource); 
if(name=='') {
name = 'capture.png';
} else {
name += '.png';
}
fileReference.save(pngData, name); // 핵심
}

위는 내가 쓰는 화면캡춰 후 다운로드 하는 함수로 UIComponent와 파일 명을 인자로 주면 다운로드 하게 하는 함수다.
화면캡춰 후 as3corelib.swc 의 PNG라이브러리를 이용하는 것만 빼면 별달리 어려운 점이 없는 예제다.