3

Flash 5.5 AS3 を使用して EXE プロジェクターを作成しようとしています。そこでは、表示するビデオ (FLV) がいくつかあります (それらの場所は、同じディレクトリ内の exe ファイルのすぐ隣にあります)。それぞれが異なるフレームにロードされ、すべてがこれらのビデオには、全画面表示オプションも必要です。これらは、人々がフルスクリーンで見たいと思うオリジナルのビデオです。体験には欠かせない…

私が現在抱えている問題 (別のビデオに移動した後、音が止まらなかった問題を修正した後) を説明するのは難しいですが、一生懸命努力します.

ビデオの全画面表示ボタンをクリックして全画面表示で見ると、最終的に全画面表示を終了したくなるので、下部にある同じアイコンをクリックして全画面表示を終了します (または ESC ボタン、それは同じ)、ナビゲーション ボタンをクリックして 2 番目の FLV のフレームに移動し、他のビデオを視聴します。2 番目のビデオをフル スクリーンで見てからフル スクリーンを終了すると、フラッシュによって最初のビデオのフレームに移動しますが、これは大きな問題です。また、2 番目のビデオのフレームに戻るボタンが機能しなくなりました。フラッシュが詰まっているようです。

コンポーネント メニューから [コンポーネント] --> [FLVPlayback 2.5] を使用し (AS3 プログラミングについてよくわかりません)、コンポーネント パラメータでそのプロパティを修正します。

また、次のいずれもバグの原因ではないと思いますが、これらの 3 つのスクリプトを使用して、1 つのフレームから離れて (FLV 再生を使用して) 次のフレームに移動するときにすべてのサウンドを停止します。

別の FLVplayback を持つ別のフレーム:

MyFLV.stop();

SoundMixer.stopAll();

MyFLV.addEventListener(Event.REMOVED_FROM_STAGE,xyz);
function xyz(e:Event):void{
MyFLV.stop();
}

私が説明した音のバグについて人々が助けを求めている場所をオンラインで見つけました。

3 番目のスクリプトは、別のフレームに移動する前にステージから FLVplayback を削除すると想定されていましたが、フル スクリーンに入らない場合にのみ機能します。ステージから前のビデオを完全に削除するものが必要なので、2番目に表示したビデオを終了した後、何らかの理由でまだメモリに残っているビデオにフラッシュが移動しません。私のプロジェクトには 30 本ほどのビデオがあり、次のフレームに移動して新しい FLVPlayback を開く前に、それらをすべてステージから削除する必要があります。

この問題で作成したデモへのリンクを追加して、それを見ることができるようにしようとしましたが、「おっと、何か問題が発生しました」というエラーが発生しました。おそらくスパム対策メカニズムです...

4

3 に答える 3

1

フレームと flvplayback インスタンスを 1 つだけ使用することをお勧めします。そうしないと、得られたような奇妙なバグに対処する必要があります (通常は、コードの置き忘れや忘れが原因です)。もちろん、フレームを 1 つだけ使用するには、より多くのコードを使用する必要があります。

心配しないでください。すべて説明します。

コードを使用する理由 (複数のフレームではなく):

  1. 追跡しやすい:
    • すべてのコードがどこにあるかを把握して、問題を簡単に見つけて修正できるようにします。
  2. 変更をより簡単に
    • 既存のビデオを切り替えたいですか?ファイル リファレンスを編集すれば完了です。
    • 動画を追加しますか? 新しい flvplayback インスタンスを新しいフレームにドラッグする必要はもうありません。非常に単純なコードとボタンを追加するだけで完了です。
  3. より多くのカスタマイズ

複数のフレーム (および複数の flvplayback インスタンス) を使用する理由:

  1. 視覚的に配置しやすい
    • ステージ上に視覚的に配置できる実際のムービークリップがあると、より簡単に感じる人もいます。
  2. 少ないコード

どうぞ:

//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 コンポーネントへのスキンの適用」に関するセクションを見つけ、それに従って Adob​​e 再生スキンを使用します。独自のスキンを作成したい場合は、作成済みのスキンを開いて編集することをお勧めします。私はで私のものを見つけました

    C:\Program Files (x86)\Adobe\Adobe Flash CS6\Common\Configuration\FLVPlayback Skins\FLA\ActionScript 3.0

これが役立つことを願っています!

于 2013-01-14T07:35:15.553 に答える
0
flvPlayBack.stop();
removeChild(flvPlayBack);

サウンドを停止し、再生を削除します。

于 2015-04-01T09:33:16.857 に答える