Adobe Flex 3 ヘルプ

Stage プロパティの設定

Stage クラスは、DisplayObject クラスのほとんどのプロパティとメソッドをオーバーライドします。オーバーライドされたプロパティまたはメソッドのいずれかを呼び出した場合、Flash Player および AIR は例外をスローします。例えば、Stage オブジェクトは、アプリケーションのメインコンテナとして位置が固定されているため、x プロパティや y プロパティを持ちません。x プロパティおよび y プロパティは、コンテナを基準として表示オブジェクトの位置を参照します。Stage オブジェクトは別の表示オブジェクトコンテナに含まれていないため、この 2 つのプロパティは適用されません。

注意:Stage クラスの一部のプロパティおよびメソッドは、最初にロードされた SWF ファイルと同じセキュリティサンドボックス内にあるオブジェクトを表示するためだけに使用できます。詳細については、ステージのセキュリティを参照してください。

サブトピック



再生フレームレートの制御

Stage クラスの framerate プロパティは、アプリケーションにロードされたすべての SWF ファイルのフレームレートを設定するために使用します。詳細については、ActionScript 3.0 コンポーネントリファレンスガイドを参照してください。

import flash.display.Stage;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;

var swfStage:Stage = videoScreen.stage;
swfStage.scaleMode = StageScaleMode.NO_SCALE;
swfStage.align = StageAlign.TOP_LEFT;

function resizeDisplay(event:Event):void
{
    var swfWidth:int = swfStage.stageWidth;
    var swfHeight:int = swfStage.stageHeight;

    // Resize the video window.
    var newVideoHeight:Number = swfHeight - controlBar.height;
    videoScreen.height = newVideoHeight;
    videoScreen.scaleX = videoScreen.scaleY;
    
    // Reposition the control bar.
    controlBar.y = newVideoHeight;
}

swfStage.addEventListener(Event.RESIZE, resizeDisplay);

フルスクリーンモードの操作

フルスクリーンモードを使用すると、ムービーのステージがユーザーのモニタ全体に収まるように表示され、コンテナの境界線またはメニューは表示されないように設定できます。Stage クラスの displayState プロパティは、SWF のフルスクリーンモードのオンとオフの切り替えに使用されます。displayState プロパティは、flash.display.StageDisplayState クラス内の定数で定義された値のいずれかに設定できます。フルスクリーンモードをオンにするには、displayStateStageDisplayState.FULL_SCREEN に設定します。

// Send the stage to full-screen in AS3
stage.displayState = StageDisplayState.FULL_SCREEN;

// Exit full-screen mode in AS3
stage.displayState = StageDisplayState.NORMAL;

// Send the stage to full-screen in AS2
Stage.displayState = "fullScreen";

// Exit full-screen mode in AS2
Stage.displayState = "normal";

フルスクリーンモードは別のウィンドウにフォーカスを切り替える、またはキーの組み合わせのいずれか(Esc キー(すべてのプラットフォーム)、Ctrl + W キー(Windows)、Cmd + W キー(Mac)、または Alt + F4(Windows))を使用しても終了できます。

フルスクリーンモードのステージの拡大・縮小の動作は、通常モードのものと同じです。拡大・縮小は、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 プロパティが含まれています。

ActionScript のフルスクリーンモードを操作する際には、以下の注意事項を考慮してください。

  • Flash Player では、フルスクリーンモードは、マウスクリック(右クリックを含む)またはキー押下に対する応答として ActionScript を介してのみ開始できます。アプリケーションセキュリティサンドボックスで実行される AIR コンテンツの場合、ユーザーの動作に応答してフルスクリーンモードを開始する必要はありません。
  • ユーザーが複数のモニタを使用している場合、SWF のコンテンツは 1 台のモニタ画面でのみ拡大されます。Flash Player および AIR では、メトリックにより SWF の領域を最も多く含むモニタが判断され、そのモニタがフルスクリーンモードで使用されます。
  • HTML ページに組み込まれた SWF ファイルの場合、Flash Player に組み込む HTML コードには、次のように param タグと embed 属性(名前 allowFullScreen、値 true)が含まれている必要があります。
    <object>
        ...
        <param name="allowFullScreen" value="true" />
        <embed ... allowfullscreen="true" />
    </object>
    
    

    Web ページで JavaScript を使用して SWF 組み込みタグを生成する場合、JavaScript を変更して allowFullScreen param タグ/属性を追加する必要があります。例えば、HTML ページで AC_FL_RunContent() 関数(Flex Builder 生成 HTML ページと Flash 生成 HTML ページで使用される関数)を使用する場合、次のように、この関数に allowFullScreen パラメータを追加する必要があります。

    AC_FL_RunContent(
        ...
        'allowFullScreen','true',
        ...
        ); //end AC code
    
    

    これはスタンドアロン Flash Player で実行されている SWF ファイルには当てはまりません。

  • キーボードイベントや TextField インスタンス内のテキストエントリなどの、すべてのキーボード関連 ActionScript はフルスクリーンモードでは無効になります。フルスクリーンモードを閉じるキーボードショートカットは例外です。

この他にも、理解する必要があるセキュリティ関連の制限がいくつかあります。これらについては、セキュリティサンドボックスで説明します。

ハードウェアによる拡大・縮小

Stage クラスの fullScreenSourceRect プロパティを使用すると、Flash Player または AIR でステージの特定領域をフルスクリーンモードに拡大・縮小するように設定できます。Flash Player および AIR は、ユーザーのコンピュータに取り付けられているグラフィックカードおよびビデオカードが利用できる場合は、それらを使用してハードウェアにより拡大・縮小を実行します。これは、一般的に、ソフトウェアでコンテンツを拡大・縮小して表示するより高速です。

ハードウェアによる拡大・縮小を利用するには、ステージ全体またはステージの一部をフルスクリーンモードに設定します。以下の AS3 コードでは、ステージ全体をフルスクリーンモードに設定しています。

import flash.geom.*; 
{
stage.fullScreenSourceRect = new Rectangle(0,0,320,240);
stage.displayState = StageDisplayState.FULL_SCREEN;
}

このプロパティを有効な矩形に設定し、displayState プロパティをフルスクリーンモードに設定すると、Flash Player および AIR は、指定した領域を拡大・縮小します。ActionScript 内の実際の Stage のサイズ(ピクセル単位)は変更されません。Flash Player および AIR は、矩形のサイズの下限値を強制し、「Press Esc to exit full-screen mode」という標準的なメッセージを表示します。この下限値は通常は約 260×30 ピクセルですが、プラットフォームおよび Flash Player のバージョンによって異なる場合があります。

Flash Player または AIR がフルスクリーンモードでない場合は、fullScreenSourceRect プロパティのみ設定できます。このプロパティを正しく使用するには、コード例に示されているように、このプロパティを最初に設定し、次に displayState プロパティをフルスクリーンモードに設定します。

拡大・縮小を有効にするには、fullScreenSourceRect プロパティを矩形オブジェクトに設定します。

stage.fullScreenSourceRect = new Rectangle(0,0,320,240); // Valid, will enable hardware scaling.

拡大・縮小を無効にするには、fullScreenSourceRect プロパティを AS3 では null に、AS2 では undefined に設定します。

stage.fullScreenSourceRect = null;

 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート