2016-09-28 24 views
0

我需要在AS3/Air/Starling框架上使用CameraUI捕捉圖像。我得到CameraUI,它打開,圖像被選中,我收到一個MediaPromise對象。AS3 MediaPromise for CameraUI在iOS上沒有回覆我

本文檔中的示例提到了以下代碼以從iOS上的異步媒體承諾捕獲圖像,但我在onMediaLoaded函數和ioError函數中都沒有聽到任何回調。

順便說一句日誌行「Asynchronous Mode Media Promise」。在我選擇照片時顯示。

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; 
} 

測試設備:iPhone 6運行iOS 10 空氣SDK:V22

回答

0

剛剛發現我的代碼的問題,我已經進口了starling.events.Event(而不是flash.events.DataEvent),因此我的回調函數參數中的「Event」類型導致「類型強制失敗」。