我需要使用下面的代码在iOS 8上使用Adobe Air从CameraRoll加载图像。(它还将用于从加载的图像中读取EXIF数据)
我想在addChild()
函数被触发后立即通过onMediaLoadedCameraRoll
将位图添加到舞台上。怎么做?
var loaderCameraRoll:Loader
var deviceCameraRoll:CameraRoll
var dataSourceCameraRoll:IDataInput;
var mediaPromiseCameraRoll:MediaPromise;
function loadImageFromCameraRoll(e:Event=null):void {
deviceCameraRoll = new CameraRoll();
deviceCameraRoll.addEventListener(MediaEvent.SELECT, onSelectCameraRoll);
deviceCameraRoll.browseForImage();
}
function onSelectCameraRoll(event:MediaEvent):void {
mediaPromiseCameraRoll = event.data;
dataSourceCameraRoll = mediaPromiseCameraRoll.open();
var eventSource:IEventDispatcher = dataSourceCameraRoll as IEventDispatcher;
eventSource.addEventListener( Event.COMPLETE, onMediaLoadedCameraRoll );
}
function onMediaLoadedCameraRoll(event:Event):void {
// display loaded image
}
答案 0 :(得分:0)
documentation说明了这个问题:
data属性是一个MediaPromise对象,您可以使用Loader类的loadFilePromise()方法加载该对象。
接下来是一个完全相同的例子:
var imagePromise:MediaPromise = event.data;
imageLoader.contentLoaderInfo.addEventListener( Event.COMPLETE, imageLoaded );
imageLoader.loadFilePromise( imagePromise );
如示例代码所示,您应始终将Loader的侦听器添加到其contentLoaderInfo属性中。