私は最終的にこれに対する答えを見つけました。問題は、FLVPlayback コンポーネントが stage.fullScreenSourceRect プロパティを使用して、ハードウェア スケールの全画面表示モードに入ることです。その際、ステージやコンポーネントのサイズを大きくするのではなく、stage.fullScreenSourceRect で指定されたレンダリング領域を画面いっぱいに広げます。
それを止めるには、UIManager のサブクラスを使用する FLVPlayback のサブクラスを作成し、stage.fullScreenSourceRect を設定する関数をオーバーライドする必要があります。欠点として、ハードウェアのスケーリングが失われます。しかし良い面として、プレーヤーは 3 歳児がクレヨンで描いたようには見えません。
CustomFLVPlayback.as:
import fl.video.*;
use namespace flvplayback_internal;
public class CustomFLVPlayback
{
public function CustomFLVPlayback()
{
super();
uiMgr = new CustomUIManager(this);
}
}
CustomUIManager.as:
import fl.video.*;
import flash.display.StageDisplayState;
public class CustomUIManager
{
public function CustomUIManager(vc:FLVPlayback)
{
super(vc);
}
public override function enterFullScreenDisplayState():void
{
if (!_fullScreen && _vc.stage != null)
{
try
{
_vc.stage.displayState = StageDisplayState.FULL_SCREEN;
} catch (se:SecurityError) {
}
}
}
}
actionscript を使用して FLVPlayback をムービーに追加するので、置き換えるだけです。
var myFLVPLayback:FLVPlayback = new FLVPlayback();
と
var myFLVPLayback:CustomFLVPlayback = new CustomFLVPlayback();
カスタム クラスをコンポーネント ライブラリで使用できるようにする方法があるかどうかはわかりません。