フルスクリーンモードを使用すると、ムービーのステージをビューアのモニター全体に設定できます。境界線やメニューなどは表示されません。Stage クラスの
displayState
プロパティは、SWF のフルスクリーンモードのオンとオフを切り替えるために使用されます。
displayState
プロパティは、flash.display.StageDisplayState クラスの定数で定義されるいずれかの値に設定できます。フルスクリーンモードをオンにするには、
displayState
プロパティを
StageDisplayState.FULL_SCREEN
に設定します。
stage.displayState = StageDisplayState.FULL_SCREEN;
フルスクリーンインタラクティブモード(Flash Player 11.3 の新機能)をオンにするには、
displayState
プロパティを
StageDisplayState.FULL_SCREEN_INTERACTIVE
に設定します。
stage.displayState = StageDisplayState.FULL_SCREEN_INTERACTIVE;
フルスクリーンモードは、マウスがクリックされた場合(右クリックを含む)またはキーが押された場合の応答として、ActionScript によってのみ初期化することができます。アプリケーションのセキュリティサンドボックスで実行される AIR コンテンツでは、ユーザーの操作に応答してフルスクリーンモードに入る必要はありません。
フルスクリーンモードを終了するには、
displayState
プロパティを
StageDisplayState.NORMAL
に設定します。
stage.displayState = StageDisplayState.NORMAL;
また、別のウィンドウにフォーカスを切り替えるか、Esc キー(すべてのプラットフォーム共通)、Ctrl+W キー(Windows)、Command+W キー(Mac OS)、Alt+F4 キー(Windows)のいずれかを使用してフルスクリーンモードを終了することもできます。
Flash Player のフルスクリーンモードの有効化
HTML ページに埋め込まれた SWF ファイルでフルスクリーンモードを有効にするには、Flash Player を埋め込む HTML コードに
param
タグを含め、次のように
embed
属性で名前
allowFullScreen
と値
true
を指定する必要があります。
<object>
...
<param name="allowFullScreen" value="true" />
<embed ... allowFullScreen="true" />
</object>
Flash オーサリングツールで、ファイル/パブリッシュ設定を選択し、パブリッシュ設定ダイアログの「HTML」タブで、「Flash のみ - フルスクリーンサポート」テンプレートを選択します。
Flex で、HTML テンプレートにフルスクリーンをサポートする
<object>
タグおよび
<embed>
タグが含まれていることを確認します。
Web ページ内の JavaScript を使用して SWF 埋め込みタグを生成する場合、JavaScript を変更して、
allowFullScreen param
タグや属性を追加する必要があります。例えば、HTML ページで
AC_FL_RunContent()
関数(Flash Professional および Flash Builder で生成された HTML ページで使用される)を使用する場合、
allowFullScreen
パラメーターを該当の関数呼び出しに対して次のように追加する必要があります。
AC_FL_RunContent(
...
'allowFullScreen','true',
...
); //end AC code
これは、スタンドアローンの Flash Player で実行される SWF ファイルには適用されません。
注意:
ウィンドウモード(HTML の wmode)を「不透明表示」(不透明)または「透明表示」(透明)に設定した場合、フルスクリーンウィンドウは常に不透明になります。
また、ブラウザー上の Flash Player におけるフルスクリーンモードの使用については、セキュリティに関連する制限があります。それらの制限についての説明は、
セキュリティ
を参照してください。
Flash Player 11.3 以降のフルスクリーンインタラクティブモードの有効化
Flash Player 11.3 以降では、フルスクリーンインタラクティブモードがサポートされています。このモードでは、キーボードのすべてのキー(フルスクリーンインタラクティブモードを終了する
Esc
を除く)が完全にサポートされます。フルスクリーンインタラクティブモードは、複数のプレーヤーが参加するゲームでチャットを行う場合や、一人称シューティングゲームで WASD キーボードコントロールを使用する場合などに便利です。
HTML ページに埋め込まれた SWF ファイルでフルスクリーンインタラクティブモードを有効にするには、Flash Player を埋め込む HTML コードに
param
タグを含め、次のように
embed
属性で名前
allowFullScreenInteractive
と値
true
を指定する必要があります。
<object>
...
<param name="allowFullScreenInteractive" value="true" />
<embed ... allowFullScreenInteractive="true" />
</object>
Flash オーサリングツールで、ファイル/パブリッシュ設定を選択し、パブリッシュ設定ダイアログの「HTML」タブで、「Flash のみ - フルスクリーンサポート」テンプレートを選択します。
Flash Builder および Flex で、フルスクリーンインタラクティブサポートをサポートする
<object>
タグと
<embed>
タグが HTML テンプレートに含まれていることを確認します。
Web ページ内の JavaScript を使用して SWF 埋め込みタグを生成する場合、JavaScript を変更して、
allowFullScreenInteractive param
タグや属性を追加する必要があります。例えば、HTML ページで
AC_FL_RunContent()
関数(Flash Professional および Flash Builder で生成された HTML ページで使用される)を使用する場合、
allowFullScreenInteractive
パラメーターを該当の関数呼び出しに対して次のように追加する必要があります。
AC_FL_RunContent(
...
'allowFullScreenInteractive','true',
...
); //end AC code
これは、スタンドアローンの Flash Player で実行される SWF ファイルには適用されません。
フルスクリーンのステージサイズと拡大/縮小
Stage.fullScreenHeight
プロパティと
Stage.fullScreenWidth
プロパティは、フルスクリーンの状態にすぐ移行する場合、フルスクリーンサイズで使用されるモニターの高さと幅を返します。これらの値を取得した後、フルスクリーンモードに移行する前にユーザーがブラウザーを別のモニター上に移動する機会があると、値が無効になる可能性があります。これらの値の取得処理と
Stage.displayState
プロパティを
StageDisplayState.FULL_SCREEN
に設定する処理を同じイベントハンドラー内で実行すれば、値は正しいものとなります。複数のモニターがあるユーザー環境では、SWF コンテンツは 1 台のモニターのみを使用してフルスクリーン表示されます。Flash Player および AIR では、SWF コンテンツのもっとも多くの部分が配置されているモニターを一定の基準によって判別し、そのモニターをフルスクリーンモードで使用します。fullScreenHeight および fullScreenWidth プロパティは、フルスクリーンモードで使用されるモニターのサイズのみを反映します。詳しくは、『
Adobe Flash Platform 用 ActionScript 3.0 リファレンスガイド
』の
Stage.fullScreenHeight
および
Stage.fullScreenWidth
を参照してください。
フルスクリーンモードでのステージの拡大/縮小操作は、通常モードの場合と同様です。拡大/縮小は、Stage クラスの
scaleMode
プロパティで制御します。
scaleMode
プロパティを
StageScaleMode.NO_SCALE
に設定した場合、Stage の
stageWidth
プロパティと
stageHeight
プロパティは、SWF が占める画面領域のサイズ(この場合は画面全体)に応じて変わります。ブラウザーで表示する場合は、これに対応する HTML パラメーターによって設定が制御されます。
Stage クラスの
fullScreen
イベントを使用すると、フルスクリーンモードのオンとオフを検出して応答することができます。例えばこの例のように、フルスクリーンモードに移行するとき、またはフルスクリーンモードを終了するときに、画面アイテムの再配置、追加、削除を行うことができます。
import flash.events.FullScreenEvent;
function fullScreenRedraw(event:FullScreenEvent):void
{
if (event.fullScreen)
{
// Remove input text fields.
// Add a button that closes full-screen mode.
}
else
{
// Re-add input text fields.
// Remove the button that closes full-screen mode.
}
}
mySprite.stage.addEventListener(FullScreenEvent.FULL_SCREEN, fullScreenRedraw);
このコードが示すように、
fullScreen
イベントのイベントオブジェクトは、flash.events.FullScreenEvent クラスのインスタンスです。このクラスには、フルスクリーンモードが有効(
true
)であるか無効(
false
)であるかを示す
fullScreen
プロパティがあります。
フルスクリーンモードでのキーボードサポート
Flash Player をブラウザー上で実行しているとき、フルスクリーンモードでは、キーボードイベントやテキスト入力などすべてのキーボード関連 ActionScript が無効になります。ただし、例外として次のキーは有効です。
これらの制約は、スタンドアローンの Flash Player または AIR ランタイムで実行されている SWF コンテンツには適用されません。 AIR では、キーボード入力を許可するインタラクティブフルスクリーンモードがサポートされています。
フルスクリーンモードでのマウスサポート
デフォルトでは、フルスクリーンモードにおいても、マウスイベントはフルスクリーンモード以外の場合と同様に機能します。しかし、必要な場合は、
Stage.mouseLock
プロパティを設定してフルスクリーンモードのマウスロックを有効にすることができます。マウスロックを使用すると、カーソルが無効化され、境界のないマウス動作が可能になります。
注意:
マウスロックは、デスクトップアプリケーションのフルスクリーンモードにおいてのみ有効化することができます。アプリケーションがフルスクリーンモードでない場合や、モバイルデバイス上のアプリケーションでは、設定すると例外がスローされます。
次の場合に、マウスロックは自動的に無効化され、マウスカーソルが再度表示されます。
-
ユーザーが Esc キー(すべてのプラットフォーム)、Ctrl + W キー(Windows)、Command + W キー(Mac)または Alt + F4 キー(Windows)を使用して、フルスクリーンモードを終了した場合。
-
アプリケーションウィンドウがフォーカスを失った場合。
-
プライバシーダイアログボックスなどの設定 UI が表示された場合。
-
ファイルアップロードダイアログボックスなどのネイティブのダイアログボックスが表示された場合。
mouseMove
イベントなど、マウスの動きに関連するイベントでは、イベントオブジェクトは MouseEvent クラスを使用して表現されます。マウスロックが無効になっているときマウスの位置を調べるには、
MouseEvent.localX
および
MouseEvent.localY
プロパティを使用します。マウスロックが有効になっているときマウスの位置を調べるには、
MouseEvent.movementX
および
MouseEvent.movementY
プロパティを使用します。
movementX
および
movementY
プロパティの値は、マウス位置の絶対座標ではなく、前回のイベントの時点からマウス位置がどれだけ変化したかを示しています。
フルスクリーンモードでのハードウェア拡大/縮小機能
Stage クラスの
fullScreenSourceRect
プロパティを使用すると、ステージの特定の領域をフルスクリーンモードに拡大するように Flash Player または AIR を設定できます。 Flash Player と AIR では、ユーザーのコンピューターに搭載されたグラフィックカードやビデオカードにハードウェアの拡大/縮小機能があれば、これを利用します。通常、表示の拡大/縮小はソフトウェアよりもハードウェアで実行する方が高速に処理できます。
ハードウェアの拡大/縮小機能を活用するには、ステージ全体またはステージの一部をフルスクリーンモードに設定します。 次の ActionScript 3.0 コードでは、ステージ全体をフルスクリーンモードに設定します。
import flash.geom.*;
{
stage.fullScreenSourceRect = new Rectangle(0,0,320,240);
stage.displayState = StageDisplayState.FULL_SCREEN;
}
このプロパティを有効な矩形に設定し、
displayState
プロパティをフルスクリーンモードに設定すると、指定された領域が Flash Player および AIR により拡大/縮小されます。ActionScript 内の実際のステージサイズ(ピクセル単位)は変更されません。 標準の「フルスクリーンモードを終了するには、Esc キーを押します」というメッセージに対応するため、矩形のサイズに最小限度が適用されます。通常、この限度は約 260 × 30 ピクセルですが、プラットフォームおよび Flash Player のバージョンによって異なる場合があります。
fullScreenSourceRect
プロパティを設定できるのは、Flash Player がフルスクリーンモードでない場合のみです。このプロパティを正しく使用するには、先にこのプロパティを設定し、次に
displayState
プロパティをフルスクリーンモードに設定します。
拡大/縮小を有効にするには、次のように
fullScreenSourceRect
プロパティを矩形オブジェクトに設定します。
stage.fullScreenSourceRect = new Rectangle(0,0,320,240);
拡大/縮小を無効にするには、
fullScreenSourceRect
プロパティを
null
に設定します。
stage.fullScreenSourceRect = null;
Flash Player でハードウェアの拡大/縮小機能をすべて利用するには、Flash Player の設定ダイアログボックスで機能を有効にします。このダイアログボックスをロードするには、ブラウザー上の Flash Player コンテンツ内を右クリック(Windows)または Control キーを押しながらクリック(Mac OS)します。最初のタブである「表示」タブを選択し、「ハードウェアアクセラレーション」チェックボックスをクリックします。
直接ウィンドウモードおよび GPU 合成ウィンドウモード
Flash Player 10 では、直接および GPU 合成という 2 つのウィンドウモードが導入されました。これらのウィンドウモードは、Flash オーサリングツールのパブリッシュ設定で有効にすることができます。これらのモードは、AIR ではサポートされていません。これらのモードを利用するには、Flash Player に対してハードウェアアクセラレーションを有効にする必要があります。
直接モードでは、最も速く最も直接的なパスを使用して画面にグラフィックスを挿入します。この方法はビデオの再生に有利です。
GPU 合成では、ビデオカード上のグラフィックスプロセッシングユニットを使用して合成を加速します。ビデオ合成は、複数のイメージを階層化して単一のビデオイメージを作成するプロセスです。合成が GPU によって加速される場合、YUV 変換、カラー補正、回転または拡大/縮小、ブレンドのパフォーマンスが向上します。YUV 変換は、送信に使用されるコンポジットアナログシグナルから、ビデオカメラと画面で使用される RGB(赤、緑、青)カラーモデルへの色変換を表します。GPU を使用して合成を加速すると、CPU に対するメモリと計算の要求が低減します。標準定義ビデオの再生も円滑になります。
これらのウィンドウモードを実装する際には注意が必要です。GPU 合成を使用すると、メモリおよび CPU リソースのコストが高くなる場合があります。ブレンドモード、フィルター処理、クリッピング、マスキングなどの一部の操作を GPU で実行できない場合は、ソフトウェアで行われます。これらのモードを使用し、バナーに対してこれらのモードを有効にしない場合は、HTML ページあたり 1 つの SWF ファイルに制限することをお勧めします。Flash Test Movie 機能では、ハードウェアアクセラレーションは使用されませんが、「パブリッシュプレビュー」オプションから使用することができます。
最大の画面更新レートである 60 を超えるフレームレートを SWF ファイルで設定することは無意味です。50 ~ 55 のフレームレートを設定すると、ドロップされたフレームが考慮されます。フレームのドロップは、様々な理由で時々発生することがあります。
直接モードを使用するには、Microsoft DirectX 9 対応で 128 MB の VRAM を搭載したハードウェア(Windows)か、OpenGL for Macintosh または Mac OS X v10.2 以上(Mac OS)が必要です。Windows で GPU 合成を使用するには、Microsoft DirectX 9 および Pixel Shader 2.0 対応で 128 MB の VRAM を搭載したハードウェアが必要です。Mac OS および Linux で GPU 合成を使用するには、OpenGL 1.5 およびいくつかの OpenGL 拡張(フレームバッファーオブジェクト、マルチテクスチャ、シェーダーオブジェクト、シェーディング言語、フラグメントシェーダー)が必要です。
direct
および
gpu
アクセラレーションモードは、Flash のパブリッシュ設定ダイアログボックスで、「Flash」タブのハードウェアアクセラレーションメニューを使用して SWF ごとにアクティブにすることができます。「なし」を選択した場合、ウィンドウモードは、「HTML」タブの「ウィンドウモード」設定での指定に応じて
default
、
transparent
または
opaque
に戻ります。