Please find the below working code to browse and display image.
private var camRoll:CameraRoll;
private var dataSource:IDataInput;
private var eventSource:IEventDispatcher;
private var mediaPromise:MediaPromise;
private function initCameraRoll():void
{
trace("ATTACH: Init...");
camRoll = new CameraRoll();
if( CameraRoll.supportsBrowseForImage )
{
if(CameraRoll.permissionStatus != PermissionStatus.GRANTED)
{
camRoll.addEventListener(PermissionEvent.PERMISSION_STATUS, function(e:PermissionEvent):void {
if (e.status == PermissionStatus.GRANTED)
{
trace("ATTACH: Permission granted");
connectCameraRoll();
}
else
{
trace("ATTACH: Permission Denied");
}
});
try {
trace("ATTACH: Request Camera Roll Permission");
camRoll.requestPermission();
} catch(e:Error)
{
trace("ATTACH: Another Request InProgress");
}
}else
{
trace("ATTACH: Permission granted");
connectCameraRoll();
}
}
else
{
trace("ATTACH: File browse not support")
}
}
private function connectCameraRoll():void
{
trace("ATTACH: Connect Camera Roll");
camRoll.addEventListener( MediaEvent.SELECT, mediaSelected );
camRoll.addEventListener( Event.CANCEL, browseCanceled );
camRoll.addEventListener( ErrorEvent.ERROR, mediaError );
camRoll.browseForImage();
}
private function mediaSelected( event:MediaEvent ):void
{
mediaPromise = event.data;
dataSource = mediaPromise.open();
trace("ATTACH: Media selected..."+mediaPromise.isAsync+":"+mediaPromise.file);
if( mediaPromise.isAsync )
{
eventSource = dataSource as IEventDispatcher;
eventSource.addEventListener( Event.COMPLETE, onMediaLoaded );
} else
{
readMediaData();
}
}
private function onMediaLoaded( event:Event ):void
{
readMediaData();
}
private function readMediaData():void
{
trace("ATTACH: Read Media..."+mediaPromise.relativePath+":"+mediaPromise.file);
var imageBytes:ByteArray = new ByteArray();
dataSource.readBytes(imageBytes);
//Load image byte array to your Image Object
yourImagaeObject.source = imageBytes;
}
private function browseCanceled( event:Event ):void
{
trace("ATTACH: Media cancelled...");
}
private function mediaError (e:ErrorEvent):void
{
trace("ATTACH: Media error..."+e.text);
}