コードが二次的なワーカー(つまり、バックグラウンド)のコンテキスト内で実行される場合、一部の flashruntime API の動作は、メインスレッドで実行される Actionscript コードの動作とは異なります。以下の API は、バックグラウンドワーカー内部から使用される場合、異なった動作をします。
機能しない API
次の API は、バックグラウンドワーカー内部からは使用できません。これらのいずれかの API のインスタンスを作成しようとすると、IllegalOperationError がスローされ、「このコンテキスト内ではこの機能を使用できません。」というメッセージが表示されます。エラー ID はすべてのインスタンスで同じなので、開発者はこの値をこのエラーを識別するために使用できます。
- flash.desktop.Clipboard // コンストラクターの呼び出しが発生し、generalClipboard の呼び出しが null を返す
- flash.desktop.NativeDragManager // isSupported が false を返す
- flash.desktop.Updater // isSupported が false を返す
- flash.display.NativeMenu // isSupported が false を返す
- flash.display.NativeWindow // isSupported が false を返す
- flash.display.ToastWindow // stage.window が定義されることはないので、インスタンスにアクセスできない
- flash.display.Window // stage.window が定義されることはないので、インスタンスにアクセスできない
- flash.external.ExtensionContext // createExtensionContext() が常に null を返すか、エラーをスローする
- flash.external.ExternalInterface // available が false を返す
- flash.html.* // HTMLLoader.isSupported が false を返す
- flash.media.CameraRoll // supportsAddBitmapData と supportsBrowseForImage が false を返す
- flash.media.CameraUI // isSupported が false を返す
- flash.media.StageWebView // isSupported が false を返す
- flash.net.drm.* // DRMManager.isSupported が false を返す
- flash.printing.* // PrintJob.isSupported が false を返す
- flash.security.XMLSignatureValidator // isSupported が false を返す
- flash.system.IME // isSupported が false を返す
- flash.system.SystemUpdater // コンストラクターの呼び出しが発生する
- flash.text.StageText // コンストラクターの呼び出しが発生する
- flash.ui.ContextMenu // isSupported が false を返す
- flash.ui.GameInput // isSupported が false を返す
- flash.ui.Mouse // すべてのメソッドが何も実行せず、cursor プロパティの設定では何も実行されない
API の動作の変更
以下の API は、バックグラウンドワーカー内部から実行される場合の動作が変更されました。メソッドの一部の呼び出しでは何も実行されず、その他の呼び出しでは、IllegalOperationError またはドキュメント化された API に一致するような同等エラーがスローされます。戻り値は可能な範囲内でドキュメントと一致する必要があります。例えば、あるメソッドが通常の状態でエレメントを持つ配列を返す場合、バックグラウンドワーカー内部からそのメソッドを実行すると、空の配列が返されます。
- flash.accessibility.Accessibilty
- active // 常に false を返す
- updateProperties(); // 何も実行しない
- flash.desktop.NativeApplication** プロパティ
·
- flash.display.Stage
- allowsFullScreen // 常に false を返す
- stage3Ds // 常に空のベクトルを返す
- stageVideos // 常に空のベクトルを返す
- supportsOrientationChange // 常に false を返す
- wmodeGPU // 常に false を返す
- flash.filesystem.File
- browseForDirectory(), browseForOpen(), browseForOpenMultiple(), browseForSave() // 何も実行しない
- flash.net.FileReference** browse(), download(), save() // 何も実行せず、常に false を返す
- flash.net.FileReferenceList** browse() // 何も実行せず、常に false を返す
- flash.system.System
- ime // 常に null を返す
- exit() // このバックグラウンドワーカーを強制的に停止しシャットダウンする
- setClipboard() // 何も実行しない
-
- メソッド
- activate()、clear()、copy()、cut()、paste()、selectAll() // 何も実行しない
- exit() // このバックグラウンドワーカーを強制的に停止しシャットダウンする
- イベント
- 既存のイベントのみがサポートされる - このイベントは、ワーカーのシャットダウン時(ライフサイクルメソッドの呼び出しまたは「メイン」ワーカーのどちらかにおいて発生し、シャットダウンするとき、つまり、ランタイムが存在し、バックグラウンドワーカーからキャンセルできないとき)に送出される
-
- supportsDefaultApplication、supportsDockIcon, supportsMenu、supportsStartAtLogin、supportsSystemTrayIcon // すべて false を返す
- activeWindow // null を返す
- autoExit // setter は何も実行しない
- idleThreshold // setter は何も実行しない
- openedWindows // 空の配列 [] を返す
- systemIdleMode // setter は何も実行しない
拡張された GPU 制御範囲 - Stage3D の制限プロファイル
Context3D の新しいパラメーター「profile」が導入されました。このパラメーターは Stage3D.requestContext3D() 関数に含まれ、次の 2 つの値のいずれかを指定できます。Context3DProfile.BASELINE(「baseline」)は、以前のリリースに存在した一般的な Context3D を返します。Context3DProfile.BASELINE_CONSTRAINED(「baselineConstrained」)は、これまでサポートされていなかった GPU でのハードウェアアクセラレーションを使用して実行できる新しい種類の Context3D を返します。制限プロファイルによって、コンテンツ作成者が Windows® 上で Intel® GMA 900/950 などのグラフィックカードを使用する古いシステムをターゲットとした Stage3D コンテンツを作成できます。制限プロファイルを使用して比較的ローエンドのハードウェアをターゲットとすることの代償は、コンテンツがそのハードウェアで適切に動作することを保証するために Stage3D の機能が制限されることです。GMA 900/950 などのカードでは、ピクセル/頂点シェーダーのバージョン 2.0 のみがサポートされます。このバージョンでは、制限プロファイルで使用される場合、Stage3D に対して以下の制限が適用されます。
- シェーダー当たり 64 個の ALU と 32 個のテクスチャインストラクションに制限されます。
- シェーダー当たりのテクスチャ読み取り間接参照は 4 個のみです。
- シェーダー当たりの定数/varying 変数/一時変数が少数に制限されます。
- 述語レジスタがサポートされません。これは、sln/sge/seq/sne に影響し、複合の mov/cmp インストラクションで置き換える必要があります。これらのインストラクションは ps_2_0 で使用できます(内部では、ps_2_x に比べてより多くのインストラクションスロットを費やして実行されます)。
- Context3D の巻き戻し用のバッファーは、常にステージの境界内にあることが必要です。
- 制限プロファイルで実行する Context3D のインスタンスは 1 つのみが、Flash Player インスタンス内で許可されます。
- モバイルと同様に、標準的な Flash 表示リストのエレメントは、Stage3D の制限コンテンツが表示されている間は、Context3D.present() を呼び出さない限り更新されません。
「Profile」は requestContext3D メソッドの 2 番目のオプションパラメーターです。開発者は、下記の API が示すように、Context3D を制限モードで取得するために、「baselineConstained」プロファイルを要求できます。function requestContext3D ( context3DRenderMode : String = "auto", profile : String = "baseline" ) : void;
例:
stage.stage3Ds[0].addEventListener(Event.CONTEXT3D_CREATE, createdHandler);
stage.stage3Ds[0].requestContext3D(Context3DRenderMode.AUTO, Context3DProfile.BASELINE_CONSTRAINED);
ADT を使用した直接的な AIR のデプロイ
インストール:
デバイスに IPA をインストールするには、次のコマンドを使用します。
adt -installApp -platform ios -device <deviceID> -package <ipa-file>
アンインストール:
デバイスから IPA をアンインストールするには、次のコマンドを使用します。
adt -uninstallApp -platform ios -device <deviceID> -appid <app-id>
接続されるデバイスの <deviceID> は、次のコマンドによって一覧表示される「Handle」の値となります。
@SDKLocation/bin/adt –devices –platform ios
<app-id> は、アプリケーション記述ファイル(app.xml)の <id> タグ内に指定されています。Flash Builder を使用してプロジェクトを作成する場合、この ID はデフォルトでアプリケーション名と同じになります。
デスクトップに接続されているデバイスが 1 つのみの場合は、「-device <deviceID>」引数を省略すると、接続されているデバイスに対してアプリケーションのインストールまたはアンインストールが実行されます。
adt -installApp -platform ios -package <ipa-file>
iOS プッシュ通知
1) app.xml 内のアプリケーション識別子(id タグ)は、プッシュ通知が有効にされたモバイルプロビジョニング証明書のアプリケーション識別子と同じであることが必要です。
2) アプリケーション識別子の Entitlements セクションに aps-environment を含めます。