![]() |
|
||||||||||
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
|
Так конечно ошибка будет. Звук играет ровно без задержек. А любая тормознутось машины сразу вызовит смешения кадров.
Нужно подсчитать количество миллисекунд (можно и просто секунд *1000) и забить в массив. Теперь удаляешь звук с тамлайн и создаешь экзепляр класса Sound. К ним делаешь attachSound звука из библиотеки. И запускаешь звук start(0,0). Теперь внутри onEnterFrame проверяшешь у звука значение position и сравниваешь его с значением в массиве для n-го текста. Если position равен или больше, то меняешь текст и сравниваешь уже со следущим значеним в массиве. |
|
|||||
|
Регистрация: Jul 2005
Сообщений: 11
|
Эт я и сам знаю, саму процедуру на словах, но я не знаю actionScript, потому и обратился сюда, я Director'щик на лино это сделал бы в два счета, но надо во флэше.... можешь отредактировать код? просто в action'e мой познания ограничиваются навигацией по таймлайну...
stop(); _root.my_sound = new Sound(); _root.my_sound.attachSound("cong1"); _root.onEnterFrame = function() { _root.my_sound.start(0,1000) if (start_ == 1) { if (i == 75) { _root.nextFrame(); } else { _root.stop(); } i<75 ? i++ : i=0; } }; так? |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
|
stop ();
_root.my_sound = new Sound ();
_root.my_sound.attachSound ("cong1");
_root.my_sound.start ();
// массив с времене окончанием каждого куска текста. в примере всего 5 кусков и каждый длится равно 1,5 секунды
_root.arraySound = new Array (1500, 3000, 4500, 6000);
_root.frame = 0;
_root.onEnterFrame = function () {
if (_root.my_sound.position > _root.arraySound[_root.frame]) {
_root.nextFrame ();
_root.frame++;
}
if (_root.frame > _root.arraySound.length) {
trace ("значения в массиве или звук закончились");
}
};
|
|
|||||
|
Регистрация: Apr 2001
Адрес: Kiev-Simferopol
Сообщений: 133
|
проще всего переходить по кадрам, отслеживая конец звука.
например, в первой строке кадра ты каждый раз инициализируешь новый рассказ. А потом, отсдеживая его завершение, переходишь дальше. Вот в таком ключе:
__________________
Понять - значит упростить. Хорошо понять - сделать самому. |
|
|||||
|
Регистрация: Jul 2005
Сообщений: 11
|
Нет... несколько звуковых файлов cong1. cong2, cong3, cong4 .... и тд
|
|
|||||
|
Регистрация: Jul 2005
Сообщений: 11
|
значит просто вставить код:
_root.my_sound = new Sound (); _root.my_sound.attachSound ("cong1"); _root.my_sound.start (); _root.my_sound.onSoundComplete = function() { gotoAndPlay(nextFrame); } во фрэйм, вместо моего счетчика? |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
|
Почти:
_root.my_sound = new Sound ();
_root.my_sound.attachSound ("cong1");
_root.my_sound.start ();
// количество звуков всего
len = 5;
// счетчик звуков
cx = 1;
_root.my_sound.onSoundComplete = function () {
if (cx < len) {
cx++;
_root.my_sound.attachSound ("cong" + cx);
_root.my_sound.start ();
gotoAndPlay (nextFrame);
} else {
trace ("конец");
}
};
|
|
|||||
|
Регистрация: Jul 2005
Сообщений: 11
|
существует еще один ньюанс, за время проигрывания звука и показа текста должно смениться по очередно несколько кадров с фотографиями... это все усожняет?
|
![]() |
![]() |
Часовой пояс GMT +4, время: 23:49. |
|
|
« Предыдущая тема | Следующая тема » |
|
|