Stage プロパティの設定

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

メモ

 

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

サブトピック

再生フレームレートの制御
ステージの拡大 / 縮小の制御
フルスクリーンモードの操作

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

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

ステージの拡大 / 縮小の制御

Flash Player 画面のサイズが変更されると、Flash Player はそれに合わせてステージの内容を自動的に調節します。ステージの内容を調節する方法は、Stage class の scaleMode プロパティで指定します。このプロパティは、flash.display.StageScaleMode クラスの定数として定義された 4 つの異なる値に設定できます。

scaleMode の 3 つの値 (StageScaleMode.EXACT_FITStageScaleMode.SHOW_ALL、および StageScaleMode.NO_BORDER) については、Flash Player はステージの内容を境界線に合わせて拡大 / 縮小します。3 つのオプションごとに、拡大 / 縮小の方法が異なります。

別の方法として、scaleModeStageScaleMode.NO_SCALE に設定すると、ユーザーが Flash Player ウィンドウのサイズを変更してもステージの内容は定義済みのサイズのまま変わりません。この拡大 / 縮小モードでのみ、Stage クラスの width および height プロパティを使用して、サイズ変更後の Flash Player ウィンドウの実際のピクセル寸法を指定できます (他の拡大 / 縮小モードでは、stageWidth および stageHeight プロパティは常に SWF の元の幅と高さを反映します)。さらに、scaleModeStageScaleMode.NO_SCALE に設定した場合、SWF ファイルがサイズ変更されると Stage クラスの resize イベントが送出されるので、それに合わせて調整することができます。

結果として、scaleModeStageScaleMode.NO_SCALE に設定することにより、必要な場合は、ウィンドウのサイズ変更に応じて画面の内容をより詳細に制御できます。たとえば、ビデオとコントロールバーが含まれる SWF の場合、ステージがサイズ変更されたときに、コントロールバーのサイズを変えずに、ビデオウィンドウのサイズだけをステージサイズの変更に合わせて変更できます。例を次のコードに示します。

// videoScreen はビデオを含む表示オブジェクト (Video インスタンスなど)
// であり、ステージの左上に表示される。
// SWF がサイズ変更されると、サイズ変更される。

// controlBar はいくつかのボタンを含む表示オブジェクト (Sprite など)
// であり、常にステージの左下角 (videoScreen の下) に表示される。
// SWF がサイズ変更されても、
// サイズ変更されない。

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);

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

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

// mySprite は Sprite インスタンスで、表示リストに追加済み
mySprite.stage.displayState = StageDisplayState.FULL_SCREEN;

フルスクリーンモードを終了するには、displayState プロパティを StageDisplayState.NORMAL に設定します。

mySprite.stage.displayState = StageDisplayState.NORMAL;

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

フルスクリーンモードでのステージの拡大 / 縮小操作は、通常モードの場合と同様です。拡大 / 縮小は、Stage クラスの scaleMode プロパティで制御します。従来どおり、scaleMode プロパティを StageScaleMode.NO_SCALE に設定した場合、Stage の stageWidth プロパティと stageHeight プロパティは、SWF が占める画面領域のサイズ (この場合、画面全体) に従って変化します。

Stage クラスの fullScreen イベントを使用すると、フルスクリーンモードのオンとオフを検出して応答することができます。たとえばこの例のように、フルスクリーンモードに移行するとき、またはフルスクリーンモードを終了するときに、画面アイテムの再配置、追加、削除を行うことができます。

import flash.events.FullScreenEvent;

function fullScreenRedraw(event:FullScreenEvent):void
{
    if (event.fullScreen)
    {
        // 入力テキストフィールドを削除する。
        // フルスクリーンモードを終了するボタンを追加する。
    }
    else
    {
        // 入力テキストフィールドを再度追加する。
        // フルスクリーンモードを終了するボタンを削除する。
    }
}

mySprite.stage.addEventListener(FullScreenEvent.FULL_SCREEN, fullScreenRedraw);

このコードが示すように、fullScreen イベントのイベントオブジェクトは、flash.events.FullScreenEvent クラスのインスタンスです。このクラスには、フルスクリーンモードが有効 (true) であるか無効 (false) であるかを示す fullScreen プロパティがあります。

ActionScript でフルスクリーンモードを操作するときは、次の点に注意してください。

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


 

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

現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00000150.html