Выполняется ли код собственного расширения в Adobe AIR для IOS в отдельном потоке ЦП?

Я создаю приложение IOS, используя Flex 4.6 и AIR 3.3. У меня есть несколько библиотек Objective-C, которые мы будем использовать для обработки аудио, изображений и видео для создания нового «видео» файла.

Поскольку мы выполняем всю эту обработку на устройстве с помощью собственных расширений, мне интересно, увидит ли пользователь блокировку приложения до завершения обработки. Другими словами, мне нужно будет показать им индикатор выполнения и не позволять им делать что-либо еще в приложении, пока это не будет завершено, ИЛИ работает ли собственный код расширения в отдельном потоке?

Второстепенный вопрос будет... Если собственный код не запускается в отдельном потоке, возможно ли использовать новые рабочие процессы Actionscript для переноса обработки в отдельный поток?


person mattwallace    schedule 20.08.2012    source источник


Ответы (1)


Ваш ANE может вызывать новый поток, поэтому ваше приложение не должно блокироваться.

Это очень хороший справочник по разработке собственных расширений: http://help.adobe.com/en_US/air/extensions/air_extensions.pdf

Чтобы процитировать соответствующую часть: «Собственный код C может отправлять асинхронные события обратно на сторону ActionScript вашего расширения. Например, метод расширения может запускать другой поток для выполнения некоторой задачи. Когда задача в другом потоке завершается, этот поток вызывает FREDispatchStatusEventAsync() для информирования стороны ActionScript о расширении. Целью события является экземпляр ActionScript ExtensionContext».

Что касается рабочих потоков, да, это именно то, для чего нужны рабочие потоки, и из того, что я прочитал в реализации AS3, это будет работать именно так. Тем не менее, я уверен, что использование ANE будет быстрее для таких задач, чем использование AS3. Если у вас есть библиотеки, готовые к работе, я бы просто использовал ANE и, возможно, попробовал бы рабочие потоки, однажды выпущенные для развлечения, может быть проще поддерживать, если вы в основном разрабатываете в AS3.

person AlBirdie    schedule 20.08.2012