2017-03-09 12 views
2

나는 사용자가 지정한 위치에 파일을 저장하기 위해 노력하고 있지만, 플렉스 문제로 실행하고 3/Flash Player가 나는 원래 플래시 4.6 사용하여이 작품을 만든 9플렉스와 ByteArray의 다운로드 3/플래시 9

protected function pdfBth_printPDF(event:MouseEvent):void 
{ 
    var createPDF:PDF = new PDF(Orientation.PORTRAIT, Unit.MM, Size.A4) 
    var image:ImageSnapshot = ImageSnapshot.captureImage(albumListGrid, 500, new JPEGEncoder()); 
    var resize:Resize = new Resize (Mode.RESIZE_PAGE, Position.CENTERED); 
    createPDF.addPage(); 
    createPDF.addImageStream(image.data, ColorSpace.DEVICE_RGB, resize); 

    var ba:ByteArray = createPDF.save(Method.LOCAL); 
    new FileReference().save(ba,"AlbumList.pdf");  
} 

목록 격자의 스냅 샷을 찍은 다음 PDF로 변환하고 선택한 위치에 저장하면 완벽하게 작동합니다.

문제는 FileReference.save이며 Flash Player 9가 설치된 Flex 3에는 없습니다 (내가 알 수있는 것부터). Flex 3/FP9를 사용하여 동일한 기능을 수행하려면 어떻게합니까? 클라이언트 측에서 모든 작업을 수행하고 Flex 또는 FP를 업그레이드하는 것이 현재 옵션이 아닙니다. 어떤 도움을 주시면 감사하겠습니다 !!!

+0

ActionScript 3을 사용하고 있습니까? –

답변

1

Flex 3 또는 Flash Player 9는 로컬 파일 저장을 지원하지 않습니다. 이 문제를 해결하는 유일한 방법은 파일을 서버에 업로드 한 다음 서버에서 다운로드하는 것입니다.

어떻게 수행하는지 설명하는 this example을 살펴보십시오.

+0

확인. 그것은 연구 할 때 보았던 일종의 일종의 해결 방법입니다. 감사! – user2921015

+0

가능한 해결 방법은 @ user2921015입니다. 앱 (SWF)이 브라우저에서 실행되는 경우'externalInterface'를 사용하여'ba' 바이트 값을 일부 Javascript 배열로 전달한 다음 HTML 코드를 사용하거나 JS 함수)를 사용하여 저장 대화 상자를 불러올 수 있습니다 ... 해당 옵션을 조사하십시오. –