![]() ![]() ![]() | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
lily0717 | Åê¹ÆNo.47764 投稿日時: 2011-7-23 2:33 |
新米 ![]() ![]() 居住地: 投稿: 2
使用環境:
win7,FlashCS5 |
FLVPlaybackのフルスクリーン後 表示がおかしい いつもお世話になっています。
現在、複数の動画をフレーム移動で切り替えを行っています。 1フレーム目の動画の再生中フルスクリーン表示切り替え行い、再生終了後に2フレーム目に移動して2フレーム目の動画をフルスクリーン表示の切り替えを行うと、1フレーム目の動画が表示されるなど挙動がおかしくなります。 FlashはCS5を使用しています。 よろしくお願いします。 ■1フレーム目 stop(); import fl.video.*; var myVideo = new FLVPlayback(); myVideo.x=8; myVideo.y=10; myVideo.width=604; myVideo.height=339.95; addChild(myVideo); myVideo.skinAutoHide=false; myVideo.source="movie1.flv"; //動画再生後2フレーム目に移動 function completeHandler(event) { myVideo.stop(); stage.displayState=StageDisplayState.NORMAL; stage.removeEventListener(Event.ENTER_FRAME, startFrame); stage.removeEventListener(MouseEvent.MOUSE_DOWN, stageMouseDown); gotoAndStop(2); } myVideo.addEventListener(Event.COMPLETE,completeHandler); //ステージに「fullBT1」ムービークリップを配置 //フルスクリーンの切り替え設定 fullBT1.buttonMode=true; function clickHandler1(event:MouseEvent):void { // スクリーンモードの切り替え if (stage.displayState==StageDisplayState.NORMAL) { // フルスクリーンにする stage.displayState=StageDisplayState.FULL_SCREEN; myVideo.skin="SkinUnderAllNoVolNoCaptionNoFull.swf"; } else { // ノーマル状態にする stage.displayState=StageDisplayState.NORMAL; myVideo.skin=""; skinShow=false; } } fullBT1.addEventListener(MouseEvent.CLICK,clickHandler1); //プレーヤー表示・非表示; var skinShow:Boolean=false; function startFrame(e:Event):void { // マウスの座標を取得 var mx:Number=stage.mouseX; var my:Number=stage.mouseY; if ((300 < my) && (my < 370) && (10 < mx) && (mx < 610)) { // 特定の領域ではプレーヤーを表示 if (! skinShow) { myVideo.skin="SkinOverPlayStopSeekMuteVol.swf"; myVideo.addEventListener(VideoEvent.SKIN_LOADED, skinLodded); } } else { // それ以外ではプレーヤーを非表示 if (skinShow && (stage.displayState==StageDisplayState.NORMAL)) { myVideo.skin=""; skinShow=false; } } } stage.addEventListener(Event.ENTER_FRAME, startFrame); function skinLodded(evt:VideoEvent):void { myVideo.removeEventListener(VideoEvent.SKIN_LOADED, skinLodded); skinShow=true; } // フルスクリーンの際ダブルクリックされたらノーマルモードに戻す var double_click_speed:Number=400; var double_click_cou:Number=0; var myDate; var startTime; // マウスがダウンされたときに呼び出されるイベント; function stageMouseDown(e:MouseEvent):void { var myDate = new Date(); if (myDate.getTime()-startTime<double_click_speed) { // スクリーンモードの切り替え if (stage.displayState==StageDisplayState.FULL_SCREEN) { // ノーマル状態にする stage.displayState=StageDisplayState.NORMAL; myVideo.skin=""; skinShow=false; } } startTime=myDate.getTime(); } stage.addEventListener(MouseEvent.MOUSE_DOWN, stageMouseDown); ■2フレーム目 stop(); var myVideo2 = new FLVPlayback(); myVideo2.x=8; myVideo2.y=10; myVideo2.width=604; myVideo2.height=339.95; addChild(myVideo2); myVideo2.skinAutoHide=false; myVideo2.source="movie2.flv"; //ステージに「fullBT2」ムービークリップを配置 //フルスクリーンの切り替え設定 fullBT2.buttonMode=true; function clickHandler2(event:MouseEvent):void { // スクリーンモードの切り替え if (stage.displayState==StageDisplayState.NORMAL) { // フルスクリーンにする stage.displayState=StageDisplayState.FULL_SCREEN; myVideo2.skin="SkinUnderAllNoVolNoCaptionNoFull.swf"; } else { // ノーマル状態にする stage.displayState=StageDisplayState.NORMAL; myVideo2.skin=""; skinShow2=false; } } fullBT2.addEventListener(MouseEvent.CLICK,clickHandler2); //プレーヤー表示・非表示; var skinShow2:Boolean=false; function startFrame2(e:Event):void { // マウスの座標を取得 var mx2:Number=stage.mouseX; var my2:Number=stage.mouseY; if ((300 < my2) && (my2 < 370) && (10 < mx2) && (mx2 < 610)) { // 特定の領域ではプレーヤーを表示 if (! skinShow2) { myVideo2.skin="SkinOverPlayStopSeekMuteVol.swf"; myVideo2.addEventListener(VideoEvent.SKIN_LOADED, skinLodded2); } } else { // それ以外ではプレーヤーを非表示 if (skinShow2 && (stage.displayState==StageDisplayState.NORMAL)) { myVideo2.skin=""; skinShow2=false; } } } stage.addEventListener(Event.ENTER_FRAME, startFrame2); function skinLodded2(evt:VideoEvent):void { myVideo2.removeEventListener(VideoEvent.SKIN_LOADED, skinLodded2); skinShow2=true; } var double_click_speed2:Number=400; var double_click_cou2:Number=0; var myDate2; var startTime2; // マウスがダウンされたときに呼び出されるイベント; function stageMouseDown2(e:MouseEvent):void { var myDate2 = new Date(); if (myDate2.getTime()-startTime2<double_click_speed2) { // スクリーンモードの切り替え if (stage.displayState==StageDisplayState.FULL_SCREEN) { // ノーマル状態にする stage.displayState=StageDisplayState.NORMAL; myVideo2.skin=""; skinShow2=false; } } startTime2=myDate2.getTime(); } stage.addEventListener(MouseEvent.MOUSE_DOWN, stageMouseDown2); |
ひろゆき | Åê¹ÆNo.47765 投稿日時: 2011-7-23 13:27 |
ちょんまげら ![]() ![]() 居住地: 東京砂漠 投稿: 4403
使用環境:
![]() ![]() Safari 6.1 |
Re: FLVPlaybackのフルスクリーン後 表示がおかしい まず、使用環境は「アカウント編集」で、その他の項目に記載しておきましょう。
次に、スクリプトは、見やすいように、[code][/code]で囲んで、掲載しましょう。 また、スクリプトはコードを貼り付けるだけでなく、 どこに記述したとか、どんなインスタンスをどこに配置してあるかの情報も必要です。 第三者が再現しやすいような説明を心がけてください。 さて、本題ですが、問題の切り分けができていないように思います。 問題の原因が、フルスクリーンにあるのか、フレーム移動にあるのか、はっきりしません。 基本的に、フレーム移動でフレーム間を行き来するのは、 この手の処理には向かないように思いますので、 フレーム移動をやめて、1フレームのみで処理を行い、 フルスクリーンの問題点を明確にすべきではないでしょうか。 また、AS3.0では、FLVPlaybackを用いたフルスクリーンは、通常のフルスクリーンとは異なり、 FLVPlaybackインスタンスがstageで描画されるような感じ(未確認)なので、 問題を絞り込む必要があるように思います。 したがって、フレーム移動をしないやり方で、複数のFLVを再生するようなPlayerを作り、 それをもとにフルスクリーン表示を行うものに作り変えた方が良いように思います。 仮に、それが面倒だというのであれば、flaファイルをどこに上げるなどしないと、 同じものを回答者が用意するには、負担が大きいように思います。
|
lily0717 | Åê¹ÆNo.47766 投稿日時: 2011-7-23 14:34 |
新米 ![]() ![]() 居住地: 投稿: 2
使用環境:
win7,FlashCS5 |
Re: FLVPlaybackのフルスクリーン後 表示がおかしい ご回答、ありがとうございます。
使用環境について、編集しました;; すみません!! また、ご指摘いただいたように、一度自分なりに問題の切り分けを行ったうえで再度ご報告させて頂きます。 引用: mayorさんは書きました: とりあえず、フレーム移動しない方法を試してみます。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |