![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Nov 2007
Сообщений: 61
|
Привет!
В добавок к визуализатору захотелось, чтобы мелодии из списка автоматически проигрывались по очереди. Самостоятельно я смог сделать лишь, чтобы мелодия менялась по нажатию кнопки, но вот автоматизировать не получилось. Помогите, а то два дня уже бьюсь. var song:Array = new Array; song[0] = "song0.mp3"; song[1] = "song1.mp3"; song[2] = "song2.mp3"; var newChannel:Array = new Array (song.length); var num:int = 0; var snd:Sound = new Sound(new URLRequest(song[num])); var channel:SoundChannel = new SoundChannel(); channel = snd.play(); next_button.addEventListener(MouseEvent.CLICK, next); function next(e:MouseEvent):void { num = num += 1; if (num == song.length) {num = 0;} var snd:Sound = new Sound(new URLRequest(song[num])); channel.stop(); newChannel[num] = snd.play(); channel = newChannel[num]; trace (num); } но приложить его я додумался только до копии функции next. При этом срабатывает, но только один раз. Чтобы срабатывало постоянно, обработчик нужно засовывать в каждую такую копию. А тут получается матрёшка какая то -) |
|
|||||
|
ветеран форума
|
собственно, в функции next подписать функцию next на SOUND_COMPLETE для нового звука.
P. S. Точность SOUND_COMPLETE, кстати, по не зависящим от разработчиков плеера причинам, сильно хромает, доходя до 300-500 мс ошибки
__________________
4am is time to rock |
|
|||||
|
Регистрация: Nov 2007
Сообщений: 61
|
Дык, я ж именно так и делал. Пестня меняется только один раз. Чтобы включилась следующая, во вложенную функцию next с SOUND_COMPLETE нужно вкладывать еще одну функцию next с SOUND_COMPLETE. И так проделать столько раз, сколько мелодий в списке...
Или я неправильно вас понял? Добавлено через 25 часов 47 минут Ура. Разобрался таки. import flash.display.Graphics; import flash.events.Event; import flash.media.Sound; import flash.media.SoundChannel; import flash.media.SoundMixer; import flash.net.URLRequest; var song:Array = new Array(); song[0] = "song0.mp3"; song[1] = "song1.mp3"; song[2] = "song2.mp3"; song[3] = "song3.mp3"; var newChannel:Array = new Array (song.length); var num:int = 0; var snd:Sound = new Sound(new URLRequest(song[num])); var channel:SoundChannel = new SoundChannel(); channel = snd.play(); newChannel[num] = channel; channel.addEventListener(Event.SOUND_COMPLETE, nextSong); function nextSong(event:Event):void { num = num += 1; if (num == song.length) {num = 0;} var snd:Sound = new Sound(new URLRequest(song[num])); newChannel[num] = snd.play(); newChannel[num].addEventListener(Event.SOUND_COMPLETE, nextSong2); function nextSong2(event:Event):void { return nextSong(event); } } Последний раз редактировалось Jex; 14.02.2009 в 03:52. |
![]() |
![]() |
Часовой пояс GMT +4, время: 15:21. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|