SoundTouch (флеш игра, )Пример к статье, которую я разместил на этом же сайте, для людей занимающихся флэш она будет интересна, а для обычных пользователей нет.
И так всё по порядку - во-первых технология бесшовного звучания музыки. Если есть задержки, то значит что ваш плеер тормозит и очень круто. Этот файл - это всеголишь ПРИМЕР, а не игра. На тот момент на сайте не было другой категории для данного проекта. Статью я пытался разместить, но она не размещалась. Ображался к алексноду, но и тот не помог разместить статью.....
а вот статья: Технология бесшовного музыкального цикла (SoundTouch by TwiltellGame) :
Многие из нас сталкивались с проблемой создания музыкального бесшовного цикла. Из-за этой проблемы настроение самой игры падало, да и резкое обрывание звука, а потом его возникновения раздражают игрока. Эта статья о том, как создать бесшовный и непрерывный музыкальный цикл.
Раньше для создания непрерывного музыкального цикла использовалась встроенная функция ActionScript onSoundComplete. Но эта функция не позволяла создать бесшовный цикл.
И так, для создания бесшовного музыкального цикла нам нужно : 1. Музыкальный редактор (я использую видео редактор Adobe Premiere Pro 1.5) 2. Корректный код ActionScript (ну это не проблема, он написан ниже)
Для чего нужен музыкальный редактор? Для того чтобы создать цикличную музыку. В каждой музыке, ну или почти в каждой есть повторяющиеся моменты, если в музыкальном редакторе вырезать такой момент, таким образом, чтобы была идеальная состыковка звука. Как это делать, я объяснять не буду, поскольку эта тема другой статьи.
Получив цикличный отрывок музыки приступаем к написанию кода :
// Объявляем звуковые объекты s и l var s:Sound = new Sound(); var l:Sound = new Sound(); // Прикрепляем к этим объектам некий цикличный звук с именем привязки s1 s.attachSound("s1"); l.attachSound("s1"); // Воспроизводим прикрепленный звук объекта s1 s.start(); // Объявляем переменную для переключения проверки sos = 1; onEnterFrame = function () { if (sos == 1) { // Если sos = = 1, то получаем длину музыкального объекта s и текущее положение //воспроизводящей головки звука (на какой длине сейчас воспроизводится звук) all = s.duration; now = s.position; } else { // Если sos != 1, то получаем длину музыкального объекта l и текущее положение //воспроизводящей головки звука (на какой длине сейчас воспроизводится звук) all = l.duration; now = l.position; } // далее сохраняем в переменой разницу между длиной всего звука и нынешнего // момента воспроизведения will = all-now // если эта разница будет меньше или равняться 100 миллисекундам, то пришло // время запускать второй музыкальный объект if (will<=100) { if (sos == 1) { // Если sos = = 1 , то переключаем его в положение 2 и начинаем воспроизводить объект l sos = 2; l.start(); } else { // Если sos != 1 , то переключаем его в положение 1 и начинаем воспроизводить объект s sos = 1; s.start(); } } };
Примечание : Данный код напрямую связан со скоростью смены кадров, рекомендуемая скорость : 24 кадра/сек. Если скорость смены кадров невелика, то тогда в выражении if (will<=100) измените величину 100 на чуть большею, но в этом случаи корректная работа кода гарантироваться не будет!
Ну вот и всё ребята, что я хотел вам рассказать! Надеюсь мой урок поможет кому-нибудь осуществить свой бесшовный музыкальный цикл!
Примеры можете скачать с нашего сайта в разделе «РАЗНОЕ»
Ну статью можно было тогда в саму флэшку закинуть. а то я так и не понял в чем заключается эта технология, тупо поиграл кусочек песни, потом через пару сек он опять начался и все...