Предыдущая песня не остановит AS3

Этот код не остановит предыдущую песню, если я меняю песни в поле со списком. Начинает играть новая песня, но, как уже упоминалось, старая не останавливается. Пожалуйста, помогите мне с этим школьным проектом.

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();
}

person Coder    schedule 24.03.2015    source источник


Ответы (1)


Вам нужно объявить 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();
}
person phasma    schedule 24.03.2015