Просмотр полной версии : зацикленная функция
кто про что, а я всё про баню :о)
имеем:
1. массив, куда поместили ссылки на музыкальные треки.
2. функцию, которая вызывает метод лоадсаунд
function playSong(mp3) {
sound = new Sound(); // создаём новый обьект класса Sound
sound.loadSound(url[mp3], true);
собственно надо:
при нажимании на кнопку
var n=0;
play_button.onRelease = function():Void {
playSong(n);
sound.onSoundComplete = function():Void {
n++;
playSong(n);
}}
сего скрипта хватает, чтобы подгрузить и сыграть два трека из плей листа. Как зациклить функцию playSong(n), чтобы проиграли все треки, сколь бы их не было
AzagThoth
22.04.2010, 21:35
function playSong(mp3) {
sound = new Sound(); // создаём новый обьект класса Sound
sound.loadSound(url[mp3], true);
Ужасно не технично. Так лучше не делать. Что касается n то оно расти должно поидее. Потрейсите. В общем это какой-то ужас на самом деле :) Не понятно почему sound.onSoundComplete Вы в коде кнопки описываете.
что касается n, оно итак растет, именно по этому играется вторая песня. Но, чтобы сыграть третью, надо еще раз повторить код
sound.onSoundComplete = function():Void {
n++;
playSong(n);
еще раз. для четвертой - еще, и т.д.
"Не понятно почему sound.onSoundComplete" - мне тоже непонятно. Но, дело в том, что не в коде кнопки этот (не знаю как называется, класс, тег, команда:о) это.... скажем......... событие... onSoundComplete не работает. Пёс его знает почему :о)
Добавлено через 38 секунд
насчет "потрейсие" хотелось бы подробнее :о)
Добавлено через 7 минут
помнится, в бейске такое было. Когда тра-та-та сделается, гоуту туда. Вот бы в АС тоже самое, тока я не в курсе как это будет выглядеть :о)
Добавлено через 25 минут
пробовал gotoAndPlay function, не сработало
AzagThoth
23.04.2010, 06:27
Вот так правильно делать.
var n:Number=0;
createEmptyMovieClip("clip",getNextHighestDepth());
var snd:Sound=new Sound(clip);
playSong(n);
function playSong(n:Number):Void{
snd.loadSound(arr[n],false);
}
snd.onLoad=function(flagComplete:Boolean){
if(flagComplete==true){
snd.start();
}
}
snd.onSoundComplete=function():Void{
n++;
playSong(n);
}
Добавлено через 1 минуту
Только n не забудьте сравнивать с длинной массива, что бы не получить undefined однажды.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.