1

アプリケーションの残りの部分に影響を与えずに、FLVPlayBack のインスタンスをフルスクリーンで実行しようとしています。

私が読んだものによると、プレイヤーのスケールモードを設定して、拡大したときにウィンドウに収まるようにしました。

flvPlayer.scaleMode = "exactFit";

また、ステージがスケールアップしないように、ステージのスケール モードも設定しました。

stage.scaleMode = "noScale";

次に、フルスクリーン ボタンをクリックしたときのビデオ プレーヤーの動作を制御するために、プレーヤーの fullScreenTakeOver 設定も使用します。

コードを「false」に設定した場合

flvPlayer.fullScreenTakeOver = false;

すると、インターフェース全体がフルスクリーンになり、ステージがウィンドウの中央に配置されます。これは、ステージをスケーリングしないように設定したためだと思います。ビデオは通常のサイズのままで、それが行っていたことを続けます。全画面表示を終了すると、ステージが縮小して通常の状態に戻ります。

一方、「true」に設定した場合

flvPlayer.fullScreenTakeOver = true;

次に、ビデオが画面を占有しますが、拡大はしません。代わりに、ビデオがページの中央に配置され、コントロールのクリック可能な領域が、ビデオがフルサイズの場合の場所に移動します。ボタンがどこにあるべきかを推測します。

どちらの場合も、ビデオは正常に動作し続けます。

設定の適切な組み合わせについて誰か助けてもらえますか? アプリケーションのウィンドウサイズを維持し、フライプレーヤーをフルスクリーンに合わせてスケーリングする必要があります。

ありがとう。

4

2 に答える 2

1

There is a property in flvplayback named fullScreenTakeOver which is set by true by default. this will interfere with fullscreen really bad. if you want to apply fullscreen without changing logic of your stage you better set this as false after instantiation. this will decrease your troubles a lot

于 2012-08-27T18:52:49.707 に答える
0

すでに行っているいくつかの設定を設定する必要があります

stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align     = StageAlign.TOP_LEFT;
flvPlayer.fullScreenTakeOver = false;

全画面表示にすると、アプリケーションが左上に配置されます。フルスクリーン モード用のイベント リスナーを作成する必要があります。

stage.addEventListener(FullScreenEvent.FULL_SCREEN, fullScreenHandler);

そのイベントでは、ビデオのサイズ変更と移動を処理します (必要に応じて、ステージ上の他のオブジェクトも非表示にします)。

function fullScreenHandler(e:FullScreenEvent):void
{
    if (stage.displayState == StageDisplayState.NORMAL)
    {
        // Setup NORMAL Layout
        // resize and reposition the flvPlayer
    }
    else
    {
        // Setup FULL_SCREEN Layout
        // move the flvPlayer to x:0 and y:0
        // set the flvPlayer width and height to stage.stageWidth and stage.stageHeight
    }
}
于 2012-08-27T19:35:49.457 に答える