2012-03-15 1 views
2

나는 AIR 응용 프로그램을 iOS로 이식하고 있습니다. 앱이 File.browseForSave()과 함께 localy 문서를 저장합니다. 그건 iPad에서 작동하지 않는 것 같습니다. iPad에서 파일을 저장하는 방법은 무엇입니까?File.browseForSave() on ipad

P. 추적 File.url는 "app-storage : /New%20map.comap"이라고 말합니다. 어쩌면 %가있는 이름은 iOS에서 허용되지 않을 수 있습니까?

최상의 바람

+0

iOS에서는 불가능합니다. 이것은 복제본입니다. http://stackoverflow.com/questions/9374077/file-browseforsave-on-ios/9375371#9375371 –

+0

예, 알고 있습니다. 동료가 이전 질문을 열었지만 충고가 도움이되지 않았습니다. – Kakadu

+0

귀하의 의견을 이해할 수 없습니다. 어떤 조언이 효과가 없었습니까? 조언이 없었습니다 ... BrowseForSave는 ios에는 허용되지 않습니다. 찾아보기 없이도 올바른 권한을 가진 올바른 폴더에만 저장할 수 있습니다. –

답변

0

앱 샌드 박스 영역 내의 특정 디렉토리에만 저장할 수 있습니다. 예 : 문서 디렉토리.

이와 같이 이미지를 문서 디렉토리에 저장합니다. Adobe JPGEncoder를 사용하여 작성된 바이트 배열을 만들고 자르기 방법을 사용하여 스테이지의 스냅 샷을 만듭니다.

private function createImages():void { 

    var snapShot:Bitmap = crop(0, 0, 1024, 768); 

    f = File.documentsDirectory.resolvePath("test.jpg"); 

    var stream:FileStream = new FileStream(); 
    stream.open(f, FileMode.WRITE);           

    var j:JPGEncoder = new JPGEncoder(80); 

    var bytes:ByteArray = new ByteArray(); 
    bytes = j.encode(snapShot.bitmapData); 

    stream.writeBytes(bytes, 0, bytes.bytesAvailable); 
    stream.close(); 

    stream.openAsync(f, FileMode.READ); 
    stream.addEventListener(Event.COMPLETE, imagewritten, false, 0, true); 


} 

private function imagewritten(e:Event):void { 
trace("done"); 
} 



private function crop(_x:Number, _y:Number, _width:Number, _height:Number, displayObject:DisplayObject = null):Bitmap 
{ 

var cropArea:Rectangle = new Rectangle(0, 0, _width, _height); 

var croppedBitmap = new Bitmap(new BitmapData(_width, _height), PixelSnapping.ALWAYS, true); 

croppedBitmap.bitmapData.draw((displayObject!=null) ? displayObject : stage, new Matrix(1, 0, 0, 1, -_x, -_y) , null, null, cropArea, true); 

cropArea = null; 

return croppedBitmap; 
}