一部の ActionScript 3.0 API は、モバイルデバイスプロファイルで実行するアプリケーション(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
|
Shader
|
—
|
ShaderFilter
|
—
|
StorageVolumeInfo
|
StorageVolumeInfo.isSupported
|
XMLSignatureValidator
|
XMLSignatureValidator.isSupported
|
モバイルデバイスプロファイル用の HTML ベースおよび JavaScript ベースの AIR アプリケーションを記述することはできません。
次に示す一部の ActionScript 3.0 のクラスは、部分的にしかサポートされません。
File
iPhone アプリケーションは、アプリケーションディレクトリおよびアプリケーションストレージディレクトリのみにアクセスできます。File.createTempFile() および File.createTempDirectory() を呼び出すこともできます。操作を呼び出して別のディレクトリ(FileStream の read または write メソッドなど)にアクセスすると、IOError の例外が発生します。
iPhone アプリケーションでは、File.browseForOpen() メソッドで提供されるような、ネイティブファイルブラウザーダイアログボックスはサポートされていません。
Loader
iPhone アプリケーションでは、Loader.load() メソッドを使用できません。Loader.load() メソッドを使用してロードされた SWF コンテンツ内の ActionScript コードを実行することができません。ただし、SWF ファイル内のアセット(ライブラリ内のムービークリップ、イメージ、フォント、音声など)は使用できます。また、イメージファイルをロードするために Loader.load() を使用することもできます。
Video
iPhone 上の AIR アプリケーションでサポートされるのは、Sorensen ビデオおよび ON2 VP6 ビデオだけです。
navigateToURL メソッドを使用して、アプリケーションの外で H.264 ビデオを開くことができます。request パラメーターとして、目的のビデオを示す URL と共に URLRequest オブジェクトを渡します。指定されたビデオが、iPhone のビデオプレーヤーで起動されます。
テキストフィールド
iPhone 上のテキストフィールドのフォントおよびその他の設定には制限事項があります。フォントとテキスト入力を参照してください。
ADL を使用したサポート対象外の API およびデバッグ
iPhone 上でサポートされない AIR 機能の中には、(開発コンピューター上で)ADL を使用してアプリケーションをテストする際に利用できるものがあります。ADL を使用してコンテンツをテストする際にこれらの違いについて気を付けてください。
この機能には、Speex (オーディオコーデック)、H.264/AVC (ビデオコーデック)および AAC (オーディオコーデック)が含まれています。これらのコーデックは iPhone で実行する AIR アプリケーションでは利用できません。ただし、デスクトップ上では正常に動作します。
Windows の ADL では、ユーザー補助機能および文字読み上げ機能が動作します。しかし、これらの API は iPhone ではサポートされません。
RTMPE プロトコルはデスクトップ上の ADL から使用する場合には正常に動作します。しかし、RTMPE プロトコルを使用して接続を試みる NetConnection は、iPhone では成功しません。
Loader クラスは、コンテンツが ADL で実行される場合は、特に制限なく動作します。しかし、iPhone 上で実行される場合は、ActionScript バイトコードを含む SWF コンテンツをロードしようとすると、エラーメッセージが出力されます。
Shader インスタンスは ADL で実行できます。しかし、iPhone 上では、ピクセルベンダーバイトコードは解釈されず、シェーダーによるグラフィカルな効果が表れません。
詳しくは、iPhone アプリケーションのデバッグを参照してください。