在我的項目(MP3播放器),當我點擊按鈕「播放」啓動AMD發揮正常,但是當我點擊按鈕「下一首歌曲」它multiplys點擊次數(2次點擊乘以2次,3次點擊3次...),並且在背景中開始播放2或3首或更多歌曲。爲什麼它會增加我的按鈕點擊次數?有人可以幫助我嗎?Flex鍵多次點擊
按鈕:
<s:Button id="PlayBtn" x="97" y="14" width="79" height="24" label="Play"
click="playButton_clickHandler(event)" enabled="true"/>
<s:Button id="nastepnyBtn" x="354" y="14" width="79" height="24" label="=>>" click="nastepnyBtn_clickHandler(event)"/>
操作:
protected function playButton_clickHandler(event:MouseEvent):void {Odtwarzaj();}
protected function nastepnyBtn_clickHandler(event:MouseEvent):void {Odtwarzaj(1);}
PlayCode:
function Odtwarzaj(tryb:Number=0):void{
var wybrany:Object = dataGridId.selectedItem;
if(wybrany!=null){
switch(tryb){
case 0:
if(playing)
stop();
WybranyKawalek=dataGridId.selectedIndex;
break;
case 1:
if(!Normalnie.selected){
Alert.show("losuje");
}else
{
if(WybranyKawalek==tablica.length-1){
WybranyKawalek=0;
}else
{
WybranyKawalek=WybranyKawalek+1;
}
}
stop();
//playing=false;
break;
case 2:
if(!Normalnie.selected){
Alert.show("losuje");
}else
{
if(WybranyKawalek==0){
WybranyKawalek=tablica.length-1;
}
else{
WybranyKawalek=WybranyKawalek-1;
}
}
stop();
//playing=false;
break;
}
Alert.show("test="+test+" tryb="+tryb+" wybrany:"+WybranyKawalek+" t.l="+tablica.length+" dg.si="+dataGridId.selectedIndex);
playingLable.text=tablica.getItemAt(WybranyKawalek).artysta+" - "+tablica.getItemAt(WybranyKawalek).tytul;
file = new File(tablica.getItemAt(WybranyKawalek).URL_PLIKU);
if(!playing){
muzyka=new Sound();
muzyka.addEventListener(IOErrorEvent.IO_ERROR, errorHandlerMusic);
muzyka.addEventListener(Event.COMPLETE, loadCompleteMusic);
muzyka.load(new URLRequest(file.url));//, context
}
}else{
Alert.show("Zaznacz plik do odegrania!");
}
test++;
}
Playstart功能:
private function play(pos:Number=0):void{
playing=true;
kanal=muzyka.play(pos,trans);
refresh();
addEventListener(Event.ENTER_FRAME, displayProgressInSec);
}
我不完全理解你問;但如果要我猜你在某處添加一個事件監聽器,但從來沒有將其刪除;導致函數被多次調用。 – JeffryHouser
您可以加入你的「停止()」 - 功能?我想這個問題可能是有 – codingbuddha