Так что этот меня озадачилМой план для моего веб-сайта состоит в том, чтобы музыкальные треки извлекались из XML-файла, который действует как фоновая музыка для различных .swfs, загружаемых кнопками меню.Т.е. нажмите «Домой», и он вернет вас домой .swf и воспроизведет соответствующую музыку.Я хочу сделать это с помощью XML, а не подключать музыку непосредственно к .swf, чтобы сократить время загрузки (синхронизация не является проблемой), так как я не могу сохранить качество звука без значительного увеличения .swf.
Я сталкиваюсь с двумя проблемами: одна из них заключается в том, что с текущим кодом музыка воспроизводится только один раз и не зацикливается.Другой заключается в том, что я хочу, чтобы функциональность воспроизводила одну песню в качестве вступления, а затем продолжала зацикливать другую.То есть, нажмите кнопку «Домой», вступление воспроизводится, за которым следует цикл, и вы никогда не вернетесь к вступлению, пока не нажмете «Домой» снова.Я не могу понять, как управлять любой из этих вещей, за исключением создания уникальной функции для каждой кнопки.
Вот код, который я использую:
var my_songs:XMLList;
var my_total:Number;
var my_sound:Sound;
var my_channel:SoundChannel;
var current_song:Number;
var myXMLLoader:URLLoader = new URLLoader();
myXMLLoader.load(new URLRequest("playlist.xml"));
myXMLLoader.addEventListener(Event.COMPLETE, processXML);
function processXML(e:Event):void {
var myXML:XML = new XML(e.target.data);
my_songs = myXML.SONG;
my_total = my_songs.length();
//playSong(0);
myXMLLoader.removeEventListener(Event.COMPLETE, processXML);
myXMLLoader = null;
}
function playSong(mySong:Number):void {
var myURL = my_songs[mySong].@URL;
if (my_channel) {
my_channel.stop();
my_channel.removeEventListener(Event.SOUND_COMPLETE, playSong);
}
my_sound = new Sound();
my_sound.load(new URLRequest(myURL));
my_channel = my_sound.play();
my_channel.addEventListener(Event.SOUND_COMPLETE, playSong);
}
test_btn.addEventListener(MouseEvent.CLICK, onPlay);
function onPlay(e:MouseEvent):void {
playSong(0);
}
Спасибозаранее за любую помощь, которую вы можете оказать!