Flash CS5.5:使用iPhone上的CameraUI捕捉照片时,照片会旋转

请帮助,我已经成功地通过iPhone的相机访问和捕捉照片。 但问题是,当我通过“loadFilePromise”加载它,照片旋转方向错误。

import flash.media.CameraUI; import flash.media.MediaType; import flash.media.MediaPromise; import flash.events.MediaEvent; import flash.events.Event; import flash.events.MouseEvent; import flash.display.Loader; import flash.display.Bitmap; import flash.media.CameraRoll; import flash.display.StageOrientation; import flash.events.StageOrientationEvent; import flash.media.Camera; import flash.media.Video; var currentOrientation:String = ""; var cam:CameraUI = new CameraUI(); cam.addEventListener(MediaEvent.COMPLETE, captured); cam.addEventListener(Event.CANCEL, cancelled); var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, photoLoaded); addChild(loader); captureBtn.addEventListener(MouseEvent.MOUSE_UP, pressed); function pressed(e:MouseEvent){ if(CameraUI.isSupported){ cam.launch(MediaType.IMAGE); } } function captured(e:MediaEvent){ var mediaPromise:MediaPromise = e.data; if(mediaPromise != null) { output.text = "Photo captured."; loader.loadFilePromise(mediaPromise); } } function cancelled(e:Event):void { output.text = "Cancelled."; } stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGING,orientationChanging); stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGE, orientationChanged); function orientationChanging(e:StageOrientationEvent){ currentOrientation = e.afterOrientation; trace(currentOrientation); switch(currentOrientation) { case StageOrientation.DEFAULT : currentOrientation = "DEFAULT"; //set rotation value here stage.rotation = 0; break; case StageOrientation.ROTATED_RIGHT : currentOrientation = "ROTATED_RIGHT"; //set rotation value here stage.rotation = -90; break; case StageOrientation.ROTATED_LEFT : currentOrientation = "ROTATED_LEFT"; //set rotation value here stage.rotation = 90; break; case StageOrientation.UPSIDE_DOWN : currentOrientation = "UPSIDE_DOWN"; //set rotation value here stage.rotation = 180; break; } } function orientationChanged(e:StageOrientationEvent){ } function photoLoaded(e:Event){ var img:Bitmap = e.currentTarget.content as Bitmap; img.smoothing = true; img.width = 350 img.scaleY = img.scaleX; /* TRY THIS TO FIX BUT IT DIDN'T WORK: switch(currentOrientation){ case "rotatedLeft": img.rotation = 90; break; case "rotatedRight": img.rotation = 90; break; case "upsideDown": break; }*/ /* THESE LINE ARE JUST USED TO SAVE PHOTO IN CAMERA ROLL: if(CameraRoll.supportsAddBitmapData) { cameraRoll.addBitmapData(img.bitmapData); }*/ } function camRollSaved(e:Event){ output.text = "Your photo is saved to a camera roll." } 

我已经取消选中发布设置中的“自动定位”,试图纠正StageOrientation,但它仍然无法正常工作。

 stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGING,orientationChanging); stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGE, orientationChanged); 

当我将iphone旋转到lanscape(相机在右上angular的位置)然后拍照时,这是唯一正确的。

有没有人有相同的问题或知道如何解决?

非常感谢,

这解决了我在Android上: http : //blog.flexnroses.com/?p=95

我认为iOS的图书馆存在问题,因此可能无法解决您的问题,但也许您可以从中获得所需的灵感。 祝你好运!