AIR FAQ

Published on Четверг, Май 21st, 2009

Ответы на наиболее распространенные вопросы об Adobe AIR. FAQ будет со временем пополняться.

Какие у AIR возможности интеграции в систему?

Окна с поддержкой прозрачности и пользовательских скинов, контекстные меню, иконка в трее/доке, возможность запускать приложение вместе с системой, работа с файловой системой (создание, чтение, запись, изменение, перемещение, удаление файлов), drag-and-drop в и из приложения данных в различных форматах, работа с системным буфером обмена.

Можно ли с помощью AIR работать с реестром?

Нет, такой возможности нет и не предвидится в обозримом будущем.

Можно ли запустить несколько экземпляров AIR приложения?

Нет, однако при попытке повторного запуска в работающий экземпляр приложения будет передано событие InvokeEvent, которое можно обработать, открыв, например, еще одно окно.

Можно ли с помощью AIR запускать другие программы?

В AIR 1.x нельзя. Это сделано, в первую очередь, по соображениям безопасности. Shu, являющийся оберткой над AIR, дает AIR 1.x такую возможность. Возможность запуска других приложений включена в AIR 2.0 (так называемое NativeProcess API), однако при его использовании формируются инсталляторы приложений для каждой ОС в отдельности.

Могут ли AIR приложения запускать друг друга?

Официально - нет. Реально - с помощью недокументированного класса ProductManager это возможно при условии установленного в xml-описании параметра allowBrowserInvocation в true.

Можно ли запускать AIR-приложения с внешних носителей (CD, Flash-диски), не устанавливая AIR на компьютер пользователя?

AIR такой возможности не имеет, ее можно обеспечить с помощью некоторых редакций Shu, однако они не полностью соответствуют  требованиям Adobe и официально не поддерживаются.

Можно ли запустить AIR приложение из командной строки и передать ему произвольные параметры?

Да, приложения успешно запускаются, а параметры запуска передаются в InvokeEvent

Я записываю данные с помощью FileStream, однако после выходы из приложения файл нечитаем. Что случилось?

Проверьте, был ли вызван метод close() у FileStream по окончании записи.

Есть ли ограничение на количество окон, которые можно открыть в AIR приложении?

Явного ограничения нет, количество доступных для открытия окон ограничено лишь объемом оперативной памяти компьютера

В SQLLite LIKE для кириллицы всегда case-sensitive?!

Да, SQLLite способен игнорировать регистр у LIKE только для латиницы.

Какие параметры системы я могу узнать с помощью AIR?

Те же, что и обычный Flash Player (см. flash.system.Capabilities), плюс количество экранов, и, начиная с версии 1.5.1 - объем свободного места на диске и архитектуру процессора.

При старте мое приложение пытается соединиться с сетью, но не приходит ни ошибок, ни корректного результата. Что происходит?

Это Windows-specific проблема. Первые несколько секунд после запуска приложение получает необходимые права для доступа в Сеть, и посланные запросы “исчезают”. Решить проблему помогает тот факт, что NetworkMonitor/SocketMonitor показывают в это время отсутствие Сети. Таким образом, можно добавить собственную ошибку по таймауту, либо отложить запрос до появления доступа в Сеть.

Я открываю новое окно приложения, и оно перехватывает фокус с основного окна. Как этого избежать?

Поведение регулируется соответствующим (и единственным) параметром у метода open у окна. Установка его в false позволит избежать вышеназванного эффекта.


Leave a Reply