自動回転

自動回転が有効なときにユーザーがデバイスを回転させると、オペレーティングシステムは、システムタスクバーやアプリケーションを含むユーザーインターフェイス全体の方向を再設定します。この結果、ステージの縦横比は縦長から横長へ、または横長から縦長へ変更されます。縦横比が変更されるとステージサイズも変更されます。

実行時に自動回転の有効と無効を切り替えるには、Stage の autoOrients プロパティを true または false に設定します。<autoOrients> エレメントを使用して、AIR アプリケーション記述子にこのプロパティの初期値を設定することができます(AIR 2.6 よりも前のバージョンでは、autoOrients は読み取り専用プロパティであり、アプリケーション記述子のみで設定可能です)。

横長または縦長の縦横比を指定して自動回転を有効にすると、AIR では自動回転が指定された縦横比に制限されます。

ステージサイズの変更

ステージサイズが変更された場合、ステージのコンテンツは Stage オブジェクトの scaleModealign に指定されたとおりに拡大/縮小され、再配置されます。ほとんどの場合、Stage の scaleMode 設定に指定された自動的な動作を使用すると、良い結果が得られません。複数の縦横比をサポートするには、グラフィックやコンポーネントの再レイアウトと再描画が必要になります(柔軟なレイアウトロジックを実現することは同時に、画面サイズや縦横比が異なるデバイス間でアプリケーションが適切に動作することを意味します)。

次の図では、一般的なモバイルデバイスの回転時における様々な scaleMode 設定の効果について示します。

フルサイズのグラフィックを表示
横長から縦長への縦横比の回転

この図は、それぞれの拡大/縮小モードで、横長の縦横比から縦長の縦横比に回転する際に発生する拡大/縮小の動作を示しています。縦長から横長への回転でも同様の結果となります。

方向変化イベント

Stage オブジェクトは 2 種類のイベントを送出します。これらのイベントは、方向の変化を検出してそれに対応するために使用できます。自動回転が有効の場合は、ステージの resize イベントと orientationChange イベントの両方が送出されます。

resize イベントは、自動回転を使用してディスプレイの直立状態を維持している場合に最適なイベントです。ステージからの resize イベントの送出時に、必要に応じてコンテンツの再レイアウトや再描画が実行されます。resize イベントは、ステージの拡大/縮小モードが noScale に設定されている場合のみに送出されます。

orientationChange イベントを方向の変化の検出に使用することもできます。orientationChange イベントは、自動回転が有効な場合にのみに送出されます。

注意: 一部のモバイルプラットフォームでは、ステージは、resize イベントまたは orientationChange イベントの送出前に、キャンセル可能な orientationChanging イベントを送出します。このイベントはすべてのプラットフォームでサポートされているわけではないので、使用を避けてください。