2012-01-09 26 views
0

私は、外部swfをロードし、ストップ、プレイ、フォワードボタンを通してそれらを制御するフラッシュプレーヤーを作成しました。外部swfはローダークラスを使用して次の前のボタンクリックで追加されます。私は前にすぐに次のクリックしたときにpreiously SWFを追加を削除し、すべてのものは、私は次のボタンをクリックする前に、完全なロードなど正常に動作し、私は次のコードAS3で外部読み込みSWFサウンドを完全に停止およびアンロードする方法は?

l.unloadAndStop(); 

l.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS, loadProgress); 

l.contentLoaderInfo.removeEventListener(Event.COMPLETE, loadHandler); 

l.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, loadError); 

var Request:URLRequest = new URLRequest(xmlData.Page[Current_Page_No].URL[0]); 

l = new Loader(); 

l.load(Request); 

l.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,  loadProgress,false,0,true); 

l.contentLoaderInfo.addEventListener(Event.COMPLETE, loadHandler,false,0,true); 

l.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadError); 

を使用し、新しいものを追加する

、私は問題に直面しています前のコンテンツの読み込みが完了しました。 ローダーが以前のコンテンツの読み込みを続けてそのサウンドをステージに追加しているように見える場合、サウンドは現在のSWF内になくても停止しないようです。他のSWFには音がするので、単にすべての音を止めることはできません。アンロードしてもサウンドストリームで動作するものはありません。停止してください。

+1

プロセスをロード/アンロードするときにボタンを無効にすると考えましたか? –

+0

いいえ、私はボタンを無効にしようとしませんでしたが、私はこれを狙いとするつもりで、私はこれが学生を悩ませるかもしれないと思います。 –

+0

サムが言ったようにロード中も、私はボタンを無効にします。 – ToddBFisher

答えて

0

問題は今ここ

のために固定されて、私は

//stop all sounds 
SoundMixer.stopAll(); 

System.gc();//force Grabage collection (might not work) 

while (Container.numChildren > 0){ Container.removeChildAt(0); }//remove from stage 

try 
{ 

currentSWF.stop();//Stop the Loaded Movie clip copy 

while (currentSWF.numChildren > 0){ currentSWF.removeChildAt(0); }//remove all children 

currentSWF = null;//null its reference 

} 

catch(er:*) 
{ 
trace("MC null"); 
} 

l.unloadAndStop(true);//unload the loader 

l.unload(); 

// remove event listeners 
l.contentLoaderInfo.removeEventListener(ProgressEvent.PROGRESS, loadProgress); 

l.contentLoaderInfo.removeEventListener(Event.COMPLETE, loadHandler); 

l.contentLoaderInfo.removeEventListener(IOErrorEvent.IO_ERROR, loadError); 

を古い外部からロードされたSWFを除去するために使用するが、ほとんどSoundMixer.stopAll()何であったか助けとストップを持つものですの末尾に

外部オーディオ付きのSWFが読み込まれています。これが他の人にはうまくいきたいです。

0

SoundMixer.stopAll();すべての音を停止するには、load()に電話をかける前に、おそらくl.unloadAndStop()の前に行ってみてください。私はロードされたswfsのためにそれを使用したことはありませんが、試してみる価値があります。

関連する問題