尝试从mediaPromise

时间:2015-07-28 07:53:13

标签: ios actionscript-3 air starling-framework

在移动应用程序中,我需要发送用户使用相机拍摄或从相机中选取的图像。 我正在使用starling框架和feathersUI(虽然我觉得这对问题无关紧要) 使用loadFilePromise加载mediapromise时,我使用以下代码处理图像数据:

_mediaLoader = new Loader()
//loading the filePromise from CameraRoll
_mediaLoader.loadFilePromise(_mediaPromise);
_mediaLoader.contentLoaderInfo.addEventListener(starling.events.Event.COMPLETE, onLoadImageComplete);
private function onLoadImageComplete(event:flash.events.Event=null):void {
    //creating the starling texture to display the image inside the application
    var texture:Texture = Texture.fromBitmapData(Bitmap(_mediaLoader.content).bitmapData, false, false, 1);
    //now trying to load the content into a bytearray to send to the server later
    var bytes:ByteArray=_mediaLoader.contentLoaderInfo.bytes;
}

最后一行代码会导致安全错误: 错误#2044:未处理的SecurityErrorEvent:。 text =错误#2121:安全沙箱违规:app:/myapp.swf:http://adobe.com/apollo/[[DYNAMIC]]/1无法访问。这可以通过调用Security.allowDomain来解决。

我试过

Security.allowDomain("*") 

作为测试 但后来我得到: SecurityError:错误#3207:应用程序沙箱内容无法访问此功能。

作为一种解决方法,我使用Adobes PNGEncoder类从加载器BitmapData在Application中编写我自己的png ByteArray:

var ba:ByteArray=PNGEncoder.encode(Bitmap(_mediaLoader.content).bitmapData)

但这需要相当长的时间......

我还尝试使用FileReference加载图像,但

_mediaPromise.file 

_mediaPromise.relativePath 

都是空的。

我做错了什么?或者这是一个已知问题?

谢谢!

0 个答案:

没有答案