AIR FAQ
Ответы на наиболее распространенные вопросы об 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 позволит избежать вышеназванного эффекта.
