从Camera Roll加载的图像添加位图到舞台

时间:2014-12-18 21:54:27

标签: actionscript-3 bitmap air ios8 camera-roll

我需要使用下面的代码在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
}

1 个答案:

答案 0 :(得分:0)

documentation说明了这个问题:

  

data属性是一个MediaPromise对象,您可以使用Loader类的loadFilePromise()方法加载该对象。

接下来是一个完全相同的例子:

                var imagePromise:MediaPromise = event.data;
                    imageLoader.contentLoaderInfo.addEventListener( Event.COMPLETE, imageLoaded );
                    imageLoader.loadFilePromise( imagePromise );

如示例代码所示,您应始终将Loader的侦听器添加到其contentLoaderInfo属性中。