Некоторые API-интерфейсы ActionScript 3.0 недоступны для приложений с профилем мобильного устройства, таких как приложения iPhone.
Когда один и тот же код ActionScript используется с целью создания приложений для разных профилей (например, для профиля рабочего стола и мобильного устройства), необходимо проверить с помощью кода, поддерживается ли тот или иной API-интерфейс. Например, класс NativeWindow не поддерживается для приложений iPhone. (Приложения iPhone не могут использовать или создавать собственные окна.) Чтобы проверить, поддерживает используемый профиль приложения собственные окна (например, профиль рабочего стола), проверьте свойство
NativeWindow.isSupported
.
В следующей таблице перечислены API-интерфейсы, не поддерживаемые в профиле мобильных устройств. В ней также приводятся свойства, проверив которые можно узнать, поддерживает ли текущая платформа тот или иной API-интерфейс.
API
|
Проверка поддержки
|
Accessibility
|
Capabilities.hasAccessibility
|
Camera
|
Camera.isSupported
|
DatagramSocket
|
DatagramSocket.isSupported
|
DNSResolver
|
DNSResolver.isSupported
|
DockIcon
|
NativeApplication.supportsDockIcon
|
DRMManager
|
DRMManager.isSupported
|
EncryptedLocalStore
|
EncryptedLocalStore.isSupported
|
HTMLLoader
|
HTMLLoader.isSupported
|
LocalConnection
|
LocalConnection.isSupported
|
Microphone
|
Microphone.isSupported
|
NativeApplication.exit()
|
—
|
NativeApplication.menu
|
NativeApplication.supportsMenu
|
NativeApplication.isSetAsDefaultApplication()
|
NativeApplication.supportsDefaultApplication
|
NativeApplication.startAtLogin
|
NativeApplication.supportsStartAtLogin
|
NativeMenu
|
NativeMenu.isSupported
|
NativeProcess
|
NativeProcess.isSupported
|
NativeWindow
|
NativeWindow.isSupported
|
NativeWindow.notifyUser()
|
NativeWindow.supportsNotification
|
NetworkInfo
|
NetworkInfo.isSupported
|
Поддержка PDF
|
HTMLLoader.pdfCapability
|
PrintJob
|
PrintJob.isSupported
|
SecureSocket
|
SecureSocket.isSupported
|
ServerSocket
|
ServerSocket.isSupported
|
Шейдер
|
—
|
ShaderFilter
|
—
|
StorageVolumeInfo
|
StorageVolumeInfo.isSupported
|
XMLSignatureValidator
|
XMLSignatureValidator.isSupported
|
Для мобильных устройств нельзя создавать приложения AIR с использованием кода HTML и JavaScript.
Некоторые классы ActionScript 3.0 поддерживаются только частично:
File
Приложения iPhone имеют доступ только к каталогу приложения и каталогу хранения приложений. Также можно вызывать методы
File.createTempFile()
и
File.createTempDirectory()
. Вызов операции для доступа к другому каталогу (например, метод чтения или записи FileStream) вызывает исключение IOError.
Приложения iPhone не поддерживают собственные диалоговые окна обозревателя файлов, например создаваемые методом
File.browseForOpen()
.
Loader
В приложении iPhone нельзя использовать метод
Loader.load()
. Однако нельзя выполнять какой-либо код ActionScript в содержимом SWF, загруженном с помощью метода
Loader.load()
. Но можно использовать активы в SWF-файле (такие как фрагменты роликов, изображения, шрифты и звуки в библиотеке). Для загрузки файлов изображений можно также использовать метод
Loader.load()
.
Видео
В приложениях AIR на iPhone поддерживаются только видеокодеки Sorensen и ON2 VP6.
С помощью метода
navigateToURL()
можно открыть видео в формате H.264 за пределами приложения. В качестве параметра
request
необходимо передать объект URLRequest, содержащий URL-ссылку на видео. Воспроизведение видео запускается в видеопроигрывателе iPhone.
Текстовые поля
В устройстве iPhone на использование шрифтов и других настроек текстовых полей накладываются ограничения. См. раздел «
Шрифты и ввод текста
».
Неподдерживаемые API-интерфейсы и отладка с использованием ADL
Некоторые функциональные возможности AIR, которые не поддерживаются в устройстве iPhone, по-прежнему доступны при тестировании приложения с помощью ADL (на компьютере, используемом для разработки). Помните об этих различиях при тестировании содержимого с использованием ADL.
Эти функциональные возможности включают следующие видео- и аудиокодеки: Speex (аудио), H.264/AVC (видео) и AAC (аудио). Эти кодеки недоступны для приложений AIR, выполняющихся в устройстве iPhone. Однако они работают как обычно на настольном компьютере.
Поддержка расширенного доступа и средства чтения с экрана работает в ADL на платформе Windows. Однако эти API-интерфейсы не поддерживаются в устройстве iPhone.
Протокол RTMPE работает как обычно при использовании из ADL на настольном компьютере. Однако подключение NetConnection с использованием протокола RTMPE в устройстве iPhone выполняется неудачно.
Класс Loader работает без дополнительных ограничений, когда содержимое выполняется с использованием ADL. Однако при выполнении в устройстве iPhone попытки загрузить содержимое SWF с байт-кодом ActionScript заканчиваются появлением сообщения об ошибке.
Экземпляры шейдера выполняются в ADL. Однако в устройстве iPhone байт-код Pixel Bender не интерпретируется и шейдеры не имеют графического эффекта.
Дополнительные сведения см. в разделе «
Отладка приложения iPhone
».