适用于CameraUI的AS3 MediaPromise在iOS上没有回复我

时间:2016-09-28 18:04:49

标签: ios actionscript-3 flash actionscript air

我需要在AS3 / Air / Starling框架上使用CameraUI捕获图像。我得到了CameraUI,它打开了,图像被选中,我收到了一个MediaPromise对象。

文档中的示例提到了以下代码,用于从iOS上的异步媒体承诺中捕获图像,但我没有在onMediaLoaded函数和ioError函数中听到任何回调。

BTW日志行"异步模式媒体承诺。"我选择照片时会显示。

private function imageSelected(evt:MediaEvent):void
{
    this.feedbackText.text = "Image Selected\n";

    // Create a new imagePromise
    var imagePromise:MediaPromise = evt.data;

    // Open our data source
    dataSource = imagePromise.open();

    if(imagePromise.isAsync)
    {
        this.feedbackText.text += "Asynchronous Mode Media Promise.\n";

        var eventSource:IEventDispatcher = dataSource as IEventDispatcher;

        eventSource.addEventListener( Event.COMPLETE, onMediaLoaded );
        eventSource.addEventListener( IOErrorEvent.IO_ERROR, ioError );
    }
    else
    {
        this.feedbackText.text += "Synchronous Mode Media Promise.\n";
        readMediaData();
    }
}

// =======================================================================
// onMediaLoaded
// =======================================================================
protected function onMediaLoaded( event:Event ):void
{
    this.feedbackText.text += "Image Loaded.\n";
    readMediaData();
}

// ========================================================================
// ioError()
// ========================================================================
protected function ioError(event:IOErrorEvent):void
{
    this.feedbackText.text = "IOError - Unable to process photo - " + event.text;
}

测试设备:运行iOS 10的iPhone 6 Air SDK:v22

1 个答案:

答案 0 :(得分:0)

刚刚发现我的代码问题,我导入了starling.events.Event(而不是flash.events.DataEvent),因此我的回调函数参数中的“Event”类型导致“Type Coercion failed”。