Flash(AS3)で動画をフルスクリーン対応するときのトラブル 
ステージ上にFLVPlaybackコンポーネントを配置して動画を再生し、
そのうえでフルスクリーン表示にすると次のような現象が起きました。
・コンポーネントが勝手にディスプレイ解像度あわせて縦横比を維持しながら拡げてしまう
・自力で動画のサイズ変更やポジション変更するとフル→Esc→フルの2回目から効かなくなる!?
・ステージ上の他のムービークリップやテキストが消える!?
サンプルはこんなかんじ。
これだと、
他のアイテムを無視して画面いっぱいを動画が占領するのでいろいろ都合が悪いことになります。
大重さんのブログにも似たようなことが書いてありました。
なので、
フルスクリーン時の動画のサイズや位置を制御したいときは
Videoクラスを使う!ことにします。(僕も手探りなのでよく分からないです)
Videoクラスは こちら を参考にすると
C:\Program Files\Adobe\Adobe Flash CS3\ja\Configuration\Component Source\ActionScript 3.0\FLVPlayback
からfl.videoパッケージをとってきて
VideoPlayer.iNCManagerClass = NCManager; //おまじない
っていうおまじないを1行加えてやります。
それがいやならFLVPlaybackコンポーネントをライブラリに加えてやるだけでもOKです。
できたのがこんなかんじ。
Video版とFLVPlayback版の2つのソース
フルスクリーンのやり方や特有のプロパティはここに詳しく書いてあります。
http://www.adobe.com/jp/devnet/flashplayer/articles/full_screen_mode_02.html
Stage.fullScreenSourceRect:Rectangle property
このプロパティを使用すると、ステージのどの部分を画面全体に表示するかを指定できます。このプロパティを指定すると、ハードウェアスケーリングモードも有効になります。 このプロパティは、ステージ内外のどこにでも設定できる矩形です。フルスクリーンモードに移行する前に指定する必要があります。
フルスクリーンモードへの以降後にfullScreenSourceRectを調整しても、SWFの表示領域は変更されません。
フルスクリーン時のステージサイズ
stage.fullScreenWidth、fullScreenHeight(stage.stageWidth、stage.stageHeigthでもいける)
フルスクリーン背景に関して
指定した矩形の縦横比がユーザのモニターの縦横比と異なっている場合は、必要に応じて両脇に「バー」が追加されます。このバーの色は、そのSWFの背景色、またはHTMLで設定されたSWFの背景色と同じです。
フルスクリーンモードを開始または終了するときのイベント
stage.addEventListener( FullScreenEvent.FULL_SCREEN, function(e:FullScreenEvent):void{
if (e.fullScreen) {
//フルスクリーンだったら
}
});
いや~しかし
FLVplaybackのコンソールまわりは楽だし慣れてるしこっちでやりたいのが本音。
なんとかしていいやり方見つけるしかない。
ヴィダルサスーンはこのへんどうやってるんだろう・・。
alt

