PDA

Просмотр полной версии : Музыка - цикл.


RusDark
27.01.2007, 14:42
Здравствуйте, господа флешеры! :)

У меня такой вопросец:

как зациклить музыкальный отрывок, чтобы без пауз?

У меня получается так... вставляю музыкальный файл... он отыгрывает... дальше пауза секунд 5 и потом снова играет...
Как паузу ликвидировать?

Kikasso
27.01.2007, 15:05
snd.onSoundComplete = snd.start;
или
snd.onSoundComplete = function(){ this.start(); }

etc
27.01.2007, 15:53
А что, start(0,99999) не помогает? :)

RusDark
27.01.2007, 19:39
А можно подробнее... что-то не выходит у меня... :(

Есть, допустим, у меня фалик muza.mp3...

Я его импортирую в библиотеку, откуда перетаскиваю на поле...

и... ??? :(

Kikasso
27.01.2007, 19:47
не так.
прописываешь звуку linkage_id в библиотеке.

var linkage_id:String = "mySound";
var snd_mc:MovieClip = createEmptyMovieClip("snd_mc", getNextHighestDepth());
var snd:Sound = new Sound( snd_mc );
snd.attachSound (linkage_id);
snd.onSoundComplete = snd.start;
snd.start();
Ну или как __etc говорит, стартуй звук повторяя его 99999 раз.

Или вообще так делай, без библиотеки:
var snd_mc:MovieClip = createEmptyMovieClip("snd_mc", getNextHighestDepth());
var snd:Sound = new Sound( snd_mc );
snd.onLoad = snd.onSoundComplete = snd.start;
snd.loadSound("snd.mp3");
В общем, по этим словам в хелпе разжевано. Писал на коленке - может гдето ошибся.

upd: конечно, ошибся. ; лишнее. Убрал. Еще добавил строчку, чтоб яснее стало.

RusDark
28.01.2007, 01:37
А без библиотеки, енто типа надо путь к файлу?

Я уже попробовал ентот код и с библиотекой (соответственно без обращения к файлу) и без... не работает. :(

Я так понимаю надо создать символ и запихать в него музу, в одном случае, или на кадре прописать в actionscript предложенное тобою..

отыгрывает и все. ПЛюс ко всему ошибку выдает. :(

Можешь пример продемонстрировать? если несложно?

Ну или кинь исходник на rakov666@mail.ru
очень-очень надо. :(

Kikasso
28.01.2007, 03:45
Я так понимаю надо создать символ и запихать в него музу, в одном случае, или на кадре прописать в actionscript предложенное тобою..
отыгрывает и все. ПЛюс ко всему ошибку выдает. :(

Ошибки я исправил - писал действительно на коленке, точка с запятой не туда залезла. Теперь оба кода вполне рабочие. Надо сказать file->import to library, в библиотеке проставить компрессию mp3, export for actionScript и назначить идентификатор.
Ну и смотри аттачи.

RusDark
28.01.2007, 04:07
:) классно, вроде цикл.
ВОт только беда...

Мой файл не работает. :( Не воспроизводится вообще.
Может потому что он mp3, а у тебя wav?

Пробовал даже прямо в твоем файле... Удалял gulls.wav и "gulls" из AS,
пихал свой mp3, менял соответственно имя в AS на свое и тишина...

Вообще бред. по идее FLASH воспроизводит и то и др.

Kikasso
28.01.2007, 04:10
а в библиотеке проигрывается?
Попробуй мой mp3 запихать.
Флеш не все кстати mp3 ест, встречаются глюки.

Kikasso
28.01.2007, 04:14
Если цикл короткий, лучше всего вставлять wav и ужимать его внутри флеша, потому что из-за породы mp3 (там что-то с квантованием) склейка на внешнем файле ухом ловится.
Если файл длинный, лучше грузить. Есть у loadSound второй параметр, который отвечает за "потоковость".

RusDark
28.01.2007, 04:25
Хмммм... получается так... чтобы сработал данный скрипт, файл должен находится в одной папке с swf, ну или путь указывать надо...

А если импортировать прямо в swf, чтобы не зависеть от внешнего mp3?

и.. кстати, первый проигрыш идет не сначала :) чудеса!

Kikasso
28.01.2007, 04:54
Должно быть сначала.. Путь прописать - чтож в этом такого?
Можно не морочится вообще с кодом, если не хочется, всадить звук в кадр и поставить ему повторов с запасом. Решение не такое уж глупое, так намного проще приделать прелоудер.

RusDark
29.01.2007, 13:33
нет... все-таки это не то...
И потом, EI все равно не проигрывает файл.

А нельзя ли как-нить иначе?
Импортировать музыкальный файл внутрь swf и задать ему цикл?

Kinsler
29.01.2007, 13:35
насчет того что флеш хавает не все mp3
он не хавает у которых переменный битрейт

RusDark
29.01.2007, 13:47
В общем нестал париться с AS, сделал проще...
импорт звука в библиотеку -> перетаскивание на сцену -> sync=event и repeat раз 100 :)))))