ベストプラクティスとしては、ネイティブ拡張と AIR for TV アプリケーションの間のハンドシェークを定義します。ハンドシェークによって、デバイス上の拡張を使用できるかどうかをアプリケーションに伝えることができます。この情報を使用することで、AIR for TV アプリケーションでは、どのロジックパスを使用するかを判断できます。
ActionScript 拡張クラスでこのハンドシェークを行うパブリックインターフェイスを決定します。次に、AIR for TV アプリケーション開発者にこれらのインターフェイスの使用法について指示します。
例えば、次の要素を持つネイティブ拡張について考えます。
-
AIR for TV アプリケーションと共にパッケージ化するためのスタブ拡張
-
デスクトップコンピューター上でアプリケーションをテストするためのシミュレーター拡張
-
ターゲットデバイスにインストールするためのデバイスバンドル拡張(実際の拡張)
各バリエーションの ActionScript 側で、次のような実装で
isSupported()
というメソッドを定義します。
-
ネイティブ実装と連携する実際の ActionScript 実装ではこのメソッドが
true
を返すように実装します。
呼び出し元の AIR アプリケーションは、拡張がデバイスバンドルとなるデバイス上で実行されます。これにより、アプリケーションは、拡張を使用して処理を続行できることを判別できます。
-
ActionScript スタブ実装ではこのメソッドを、
false
を返すように実装します。
呼び出し元の AIR アプリケーションは、拡張がデバイスバンドルとならないデバイス上で実行されます。この状況では、AIR for TV は AIR アプリケーションと共にパッケージ化されたスタブ拡張を使用します。
false
の戻り値は、アプリケーションに対して、拡張の他のどのメソッドも呼び出さないように通知します。アプリケーションは、正常に終了するなどの適切なロジックの決定を行うことができます。
-
ActionScript シミュレーター実装ではこのメソッドが
true
を返すように実装します。
呼び出し元の AIR アプリケーションはテストの目的で、デスクトップコンピューターで実行されます。この場合、
true
の戻り値はアプリケーションに対して、拡張を使用して続行できることを通知します。
ただし、拡張によっては、アプリケーション開発者に、シミュレーター拡張と共にアプリケーションをパッケージ化するよう指示できます。これにより、アプリケーションがデバイスバンドル拡張のないデバイス上で実行される場合に、アプリケーションはシミュレーターバージョンの拡張を使用して続行できます。
|
|
|