カスタムのクロムレス 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;
これを回避する方法はありますか?外部ムービークリップでステージを認識する方法はありますか?