0

カスタムのクロムレス YouTube ビデオ プレーヤーを購入しました。これの本来の用途は、HTML ページに埋め込むことですが、私のニーズでは、外部 swf として別のコンテナー swf にロードする必要があります。

問題は、このプレーヤーのコード全体で「stage」が何度も参照されていることです。

たとえば、全画面表示モードにするには、次のようにします。

function fsClick(e:MouseEvent) {
    if(controls.fsBtn.currentFrame == 10) {
        stage.displayState = StageDisplayState.FULL_SCREEN;
        controls.fsBtn.gotoAndStop("backToNormalOver");
    }
    else {
        stage.displayState = StageDisplayState.NORMAL;
        controls.fsBtn.gotoAndStop("goFsOver");
    }
}

もう一つの例:

//stage resize event
stage.addEventListener(Event.RESIZE, onStageResize);

function onStageResize(e:Event):void{
    stage_width = stage.stageWidth;
    stage_height = stage.stageHeight;
    player.setSize(stage_width,stage_height);

    controls.x = (stage_width - controls.width)/2;
    controls.y = stage_height - 40;

    stageOver(null);

    if (stage.displayState == StageDisplayState.NORMAL) {
        controls.fsBtn.gotoAndStop("goFs");
    }

    topBar.titleBar.width = stage_width;
    topBar.theTime.x = stage_width - topBar.theTime.width -10;
    topBar.theTitle.width = stage_width - 180;
}

ここで問題は、すでにお察しのとおり、「ステージ」はこのコンテキストではもはや関連性がないということです。これは、この swf のステージではなく、コンテナーのステージを指すためです。

ステージと同じ寸法の movie_clip を作成して「stage_mc」という名前を付け、すべての参照を「stage」から「stage_mc」に切り替えてみました...そしてそのような作品ですが、明らかにそうではありません:

stage.displayState = StageDisplayState.FULL_SCREEN;

これを回避する方法はありますか?外部ムービークリップでステージを認識する方法はありますか?

4

1 に答える 1

0

いいえ、ステージは 1 つだけです。あなたの場合、それは親 SWF のステージを表します。

ただし、フルスクリーンの問題を回避するには、ステージをフルスクリーン モードに設定してstage_mcから、親 SWF を満たすようにスケーリングすることができます。

于 2013-09-13T20:47:01.813 に答える