0

コンボボックスで曲を変更している場合、このコードは前の曲を停止しません。新しい曲の再生が始まりますが、前述のように、古い曲は止まりません。この学校のプロジェクトで私を助けてください。

import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.Event;
import fl.data.DataProvider;
import flash.events.MouseEvent;

var loader:URLLoader = new URLLoader();
var url:URLRequest = new URLRequest("xml/xmlSanger.xml");
var xml:XML;
var dp:DataProvider = new DataProvider(); 

dropdown2.addEventListener(Event.CHANGE, visSang); 

loader.addEventListener(Event.COMPLETE, lastetXML); 
loader.load(url);

function lastetXML(evt:Event) {
    xml = new XML(loader.data);
    fyllComboBoks(); 
}

function fyllComboBoks(){
    var antallSanger = xml.sang.length();
    for(var teller:int = 0; teller < antallSanger; teller++)
    {
        dp.addItem({label:xml.sang[teller].navn[0]});
    }

dropdown2.dataProvider = dp; 
dropdown2.selectedIndex = 0;

}

function visSang (evt:Event){
    soundClip.stop();
    var soundClip:Sound = new Sound();
    var id:uint = dropdown2.selectedIndex;
    trace (id);
    songname.text = xml.sang[id].navn[0];
    artistname.text = xml.sang[id].artistname[0];
    var filbane = xml.sang[id].fil[0];
    soundClip.load(new URLRequest(filbane));    
    soundClip.play();
}
4

1 に答える 1

0

関数を再度呼び出したときにアクセスできるように、soundClip を visSang の外部で宣言する必要があります。

import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.Event;
import fl.data.DataProvider;
import flash.events.MouseEvent;

var loader:URLLoader = new URLLoader();
var url:URLRequest = new URLRequest("xml/xmlSanger.xml");
var xml:XML;
var dp:DataProvider = new DataProvider(); 
var soundClip:Sound;

dropdown2.addEventListener(Event.CHANGE, visSang); 

loader.addEventListener(Event.COMPLETE, lastetXML); 
loader.load(url);

function lastetXML(evt:Event) {
    xml = new XML(loader.data);
    fyllComboBoks(); 
}

function fyllComboBoks(){
    var antallSanger = xml.sang.length();
    for(var teller:int = 0; teller < antallSanger; teller++)
    {
        dp.addItem({label:xml.sang[teller].navn[0]});
    }

dropdown2.dataProvider = dp; 
dropdown2.selectedIndex = 0;

}

function visSang (evt:Event){
    soundClip.stop();
    soundClip = new Sound();
    var id:uint = dropdown2.selectedIndex;
    trace (id);
    songname.text = xml.sang[id].navn[0];
    artistname.text = xml.sang[id].artistname[0];
    var filbane = xml.sang[id].fil[0];
    soundClip.load(new URLRequest(filbane));    
    soundClip.play();
}
于 2015-03-24T18:18:55.750 に答える