フレームと flvplayback インスタンスを 1 つだけ使用することをお勧めします。そうしないと、得られたような奇妙なバグに対処する必要があります (通常は、コードの置き忘れや忘れが原因です)。もちろん、フレームを 1 つだけ使用するには、より多くのコードを使用する必要があります。
心配しないでください。すべて説明します。
コードを使用する理由 (複数のフレームではなく):
- 追跡しやすい:
- すべてのコードがどこにあるかを把握して、問題を簡単に見つけて修正できるようにします。
- 変更をより簡単に
- 既存のビデオを切り替えたいですか?ファイル リファレンスを編集すれば完了です。
- 動画を追加しますか? 新しい flvplayback インスタンスを新しいフレームにドラッグする必要はもうありません。非常に単純なコードとボタンを追加するだけで完了です。
- より多くのカスタマイズ
複数のフレーム (および複数の flvplayback インスタンス) を使用する理由:
- 視覚的に配置しやすい
- ステージ上に視覚的に配置できる実際のムービークリップがあると、より簡単に感じる人もいます。
- 少ないコード
どうぞ:
//import flv library
import fl.video.*;
これにより、ActionScript を使用して flv プレーヤーを操作できます。
//video playback code-----------------------//
var myVideo:FLVPlayback = new FLVPlayback();
これにより、myVideo という FLVPlayback のインスタンスが作成されます (これ以降、コードでは myVideo として参照されます)。
この次のチャンクは、flv プレーヤーのカスタマイズ可能な機能の多くを示しています。それらを含める必要はありません。
//places the video player on stage at x,y
myVideo.x = 115;
myVideo.y = -10;
//uses SkinOverPlayFullscreen.swf for controls
myVideo.skin = "SkinOverPlayFullscreen.swf";
//color of controls
myVideo.skinBackgroundColor = 0x333333;
//hide controls and time it takes controls to fade and reappear (milliseconds)
myVideo.skinAutoHide=true;
myVideo.skinFadeTime=300;
//add the player to the stage
addChild(myVideo);
そして、ここからが重要な部分です。ボタンを作成し、ステージに追加しました。各ボタンに異なるインスタンス名 (box1_btn、box2_btn、および box3_btn) を付けました。誰かがボタンをクリックすると、「イベント」が発生します。
//button listener code-------------------------//
//when button 1 is clicked throw button 1 event
box1_btn.addEventListener(MouseEvent.CLICK, clicked1);
//when button 2 is clicked throw button 2 event
box2_btn.addEventListener(MouseEvent.CLICK, clicked2);
//when button 3 is clicked throw button 3 event
box3_btn.addEventListener(MouseEvent.CLICK, clicked3);
//play different videos for different buttons---------//
//when button 1 event is thrown
function clicked1($e:MouseEvent):void
{
//play video 1.flv
myVideo.source = "1.flv";
}
//when button 2 event is thrown
function clicked2($e:MouseEvent):void
{
//play video 2.flv
myVideo.source = "2.flv";
}
//when button 3 event is thrown
function clicked3($e:MouseEvent):void
{
//play video 3.flv
myVideo.source = "3.flv";
}
プレーヤの 1 つのインスタンスで 2 つのビデオを同時に再生することはできないため、このコードでは再生し続けるサウンドはありません。また、ビデオが戻るフレームが 1 つしかないため、全画面表示から出たときに混乱することもありません。
発生する可能性のあるいくつかの問題:
まったく機能しません:
- コンポーネント メニュー (window>>components または ctrl+F7) からインスタンスをステージに追加し、それをステージから削除して、FLVPlayback のインスタンスをライブラリに追加したことを確認します (ライブラリにはまだ表示されているはずです)。
必要な再生ボタンが表示されない:
As3 を使用して FLVPlayback を操作する方法についての優れた説明がここにあります。
http://www.republicofcode.com/tutorials/flash/as3flvplayback/
「FLVPlayback コンポーネントへのスキンの適用」に関するセクションを見つけ、それに従って Adobe 再生スキンを使用します。独自のスキンを作成したい場合は、作成済みのスキンを開いて編集することをお勧めします。私はで私のものを見つけました
C:\Program Files (x86)\Adobe\Adobe Flash CS6\Common\Configuration\FLVPlayback Skins\FLA\ActionScript 3.0
これが役立つことを願っています!