![]() |
|
||||||||||
|
|||||
|
Ситуация такая: есть главный мув, который загружает в себя другой мувик из папки. Типа так.
movnum = random(9); // возьмем к примеру 9 мувиков с именами sound0.swf-sound8.swf loadMovieNum("sound/sound"+movnum+".swf", 1); Я успешно использовал такой ход для загрузки разнообразных аудио-подложек для одного из своих проектов. Теперь нужно нечно большее и вот тут то я и встрял. В каждом загружаемом мувике есть звуковой фрагмент, который проигрывается один-два раза за весь мувик. На этом мувик исчерпан. Задача в следующем: сделать так, чтобы после "рандомной" загрузки мувика и после его воспроизведения (для каждого мувика время воспроизведения t=10 sec), он выгружался и опять же загружался рандомом следующий мувик. Картина получается такая: заходит пользователь на сайт, а там всякие шорохи, скрежет, шепот.. И желательно сделать Action для главного мувика, который бы останавливал этот процесс бесконечной загрузки. Мало ли что. %))
__________________
<<.. я примерно представляю, что мне надо. Только вот пока не знаю от кого..>> |
|
|||||
|
Регистрация: Dec 2002
Адрес: Сочи
Сообщений: 2,819
|
Ну setInterval.
Что не подходит? |
|
|||||
|
Если рассмотреть подробнее:
1й кадр. Определяем рандомом номер, формируем имя файла с мувиком. Загружаем его. Если файл загружен -> кадр2. 2й кадр. Проигрываем мувик. Ставим SetInterval = t, именно столько времени положено для проигрывания. Определяем функцию, например Go1st, которая бы выгружала мувик и переходила на первый кадр. Вызываем SetInterval(t,Go1st); Вроде так. Теперь как бы вставить условие, чтобы можно было бы вырубить весь этот процесс?
__________________
<<.. я примерно представляю, что мне надо. Только вот пока не знаю от кого..>> |
|
|||||
|
Регистрация: Jan 2002
Адрес: СПб-Denver-Лермонтов
Сообщений: 1,525
|
В главном мувике пишем такой код.
snd = ["sound0.swf","sound1.swf","sound2.swf","sound3.swf","sound4.swf","sound5.swf","sound6.swf","sound7.swf","sound8.swf"]
for(i=0;i<9;i++){
this.createEmptyMovieClip("sound_mc"+i,i)
loadIt();
}
function loadIt(){
_root["sound_mc"+i].loadMovie("sound/"+snd[i]);
}
function playRand(){
num = random(9);
if(num!=numb){
stopAllSounds();
_root["sound_mc"+num].gotoAndStop(2);
_root["sound_mc"+numb].gotoAndStop(1);
numb=num;
}
}
function stopMusic(){
stopAllSounds();
clearInterval(m);
num=10;
}
m = setInterval(playRand, 10000);
btn.onRelease = function(){
pressed = (pressed+1)%2;
pressed ? stopMusic() : m = setInterval(playRand, 10000);
pressed ? txt="play" : txt="stop";
}
2-фрейм с вложенным звуком и кодом stop(); Лучше смотри пример. Все звуковые мувики сделай по этому образцу.
__________________
Для того чтобы узнавать, есть два способа: - задавать вопросы и пытаться самому на них ответить. Второй способ более продуктивный. (S.Wizard) Последний раз редактировалось sergwizard; 10.01.2004 в 18:45. |
|
|||||
|
Регистрация: Dec 2002
Адрес: Сочи
Сообщений: 2,819
|
Всё это хорошо?!
Но зачем грузить всё сразу? Зачем 9 мувиков для подгрузки? Если надо, чтоб пока один воспр., другой грузился, то может и 2,3 хватит? Смотрю в полглаза, мож чего то и не увидел? Извиняюсь. ![]() |
|
|||||
|
таже проблема,грузим толпу swfок, они должны играть поочереди, но время их проигрывания определить невозвожно ???
|
|
|||||
|
Регистрация: Jan 2002
Адрес: СПб-Denver-Лермонтов
Сообщений: 1,525
|
2 Штрек. Для начала, вполне бы хватило и 2-3 мувиков, ты прав. Вот только бы ты еще подсказал, каких именно? Они же РЭМДОМНО должны проигрываться.
Это раз. А два, - у тебя сначала будут постоянно возникать паузы между звуками: - функция вызвана а мувика еще нет. Чё делать? А время идет, и через 10 секунд опять вызов функции. Хило будет. Проверено уже. 2__i Если swf(шки) не музыкальные, а нормальные, то проблем вообще никаких нет. В конце каждого мувика обнуляем переменную. В начале мувика приравниваем к true. В основном проверяем. Нет переменной, - грузим новый, есть переменная, - ждемс, когда закончится. Ну, а если это музыкальные мувики, - подумать надо. Я так, влет не готов ответить.
__________________
Для того чтобы узнавать, есть два способа: - задавать вопросы и пытаться самому на них ответить. Второй способ более продуктивный. (S.Wizard) |
|
|||||
|
Регистрация: Jan 2002
Адрес: СПб-Denver-Лермонтов
Сообщений: 1,525
|
2__i
Есть такое - "Sound.onSoundComplete". Flash проверяет, закончилась ли музыка. Если да, то можно вызывать следующую функцию. В подгружаемых музыкальных файлах пишем типа такого: mySound = new Sound();
mySound.attachSound("name");
mySound.start();
mySound.onSoundComplete = _root.playNew;
Вот и все.
__________________
Для того чтобы узнавать, есть два способа: - задавать вопросы и пытаться самому на них ответить. Второй способ более продуктивный. (S.Wizard) |
|
|||||
|
Теперь бы все это в одно свести. Я весь вечер долбился, что-то своего ничего не вышло. Если я вызываю _level1.play();, то stop(); находящийся в загруженном на _level1 мувике будет распознан и остановит play в нужном месте? А как вызвать _level1.play(); сразу же при переходе на нужный кадр?
А unloadMovie/unloadMovieNum() совсем нафиг не нужен? И он что, будет все swf сразу грузить? А если я не поленюсь и сделаю их 50 и более. Он не лопнет? %) Паузы между звуками, в смысле непрерывное вопроизведение всех мувов? Вообще-то паузы должны быть, желательно оговорить какое-то стандартное время t, за которое бы подгружался рандомом выбранный следующий мув. со звуком.
__________________
<<.. я примерно представляю, что мне надо. Только вот пока не знаю от кого..>> |
|
|||||
|
Регистрация: Jan 2002
Адрес: СПб-Denver-Лермонтов
Сообщений: 1,525
|
Цитата:
Цитата:
Цитата:
Цитата:
Совет: приступая к чему-либо, сначала продумай, что ты хочешь, и как это будет выглядеть. Потом – можно ли это сделать. И только потом – КАК это сделать. Удачи.
__________________
Для того чтобы узнавать, есть два способа: - задавать вопросы и пытаться самому на них ответить. Второй способ более продуктивный. (S.Wizard) |
![]() |
Часовой пояс GMT +4, время: 05:47. |
|
|
« Предыдущая тема | Следующая тема » |
|
|