Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 29.12.2007, 14:35
OVFlash вне форума Посмотреть профиль Отправить личное сообщение для OVFlash Найти все сообщения от OVFlash
  № 1  
Ответить с цитированием
OVFlash

Регистрация: Dec 2007
Сообщений: 11
По умолчанию Помогите проиграть звук

Базовые понятия по звуку.
Пытаюсь сделать проигрывание mp3 в цикле (чтобы начальную паузу убрать).

Сначала импортировал звук через меню File...
Он появился в библиотеке (виден по F11). Например, он назывался «Подруга подкинула проблем.mp3”. И в библиотеке это же имя. Потом я попытался вызвать его, как в местных примерах:

Код:
var my_sound=new Sound();
my_sound.loadSound("gayra.wav",false);
my_sound.start();
(для данного примера был взят wav-звук, потом я его переименовал).

И тишина... ну все как обычно
Что не так?
Код я пишу, просто открыв вкладку «Actions”. Сразу после создания файла это actionscript для фрейма 0. Вставляю дополнительные фреймы (в общем достаточное время, чтобы услышать музыку). Ничего...
Первый параметр (как в хелпе сказано) у метода loadSound – это «url”. А для чего ж тогда библиотека? Мне хочется грузить это из самого флэш-файла, в котором и скрипт есть, а не из внешнего какого-то на сервере... Я вот думаю – если я вставил в библиотеку файл «Звездные войны.wav”, а потом дважды щелкнул на имени для переименования в окне библиотеки и ввел “gayra”, то по такому имени и должно идти обращение! loadSound("gayra",false); Или я неправ? Я вот сделал в библиотеке имя не gayra, а gayra.wav, но все равно тишина... Зато если просто стаскиваешь из библиотеки на сцену мышкой этот звук, то он появляется в свойствах фрейма (текущего) и отлично играет. Но мне не это нужно!

Не получается ли так, что с концом фрейма 0 все его переменные (в том числе созданный звук) мрут и на фрейме 1 уже звука нет? Кое-где в примерах звук создается просто как m=new..., а кое-где ключевое слово var: “var m=new...” Поставил var, думал оно глобальное будет и не умрет, все равно тишина...
Потом еще смотрю – к звукам, созданным с помощью var, обращаются через root: _root.firstsound...

Пример по понятным причинам не выставляю, много байт

Старый 29.12.2007, 15:03
Ostgur вне форума Посмотреть профиль Отправить личное сообщение для Ostgur Посетить домашнюю страницу Ostgur Найти все сообщения от Ostgur
  № 2  
Ответить с цитированием
Ostgur
 
Аватар для Ostgur

Регистрация: Apr 2004
Адрес: macromedia—adobe Любит: Flash MX
Сообщений: 2,860
удачи
скачать волшебный архив

да, если ты хочешь вставить звук из Library, то loadSound не поможет. перед этим в Linkage Identifier не забудь дать ему имя ostgur-demo.
Код:
my_sound = new Sound();
my_sound.attachSound('ostgur-demo');
my_sound.start(0,99999999999);


Последний раз редактировалось Ostgur; 29.12.2007 в 15:09.
Старый 29.12.2007, 21:54
OVFlash вне форума Посмотреть профиль Отправить личное сообщение для OVFlash Найти все сообщения от OVFlash
  № 3  
Ответить с цитированием
OVFlash

Регистрация: Dec 2007
Сообщений: 11
Спасибо ! Теперь-то многомесячная работа по переводу mp3 в swf будет завершена

А что касаемо волшебного архива, я как-то писал, что у меня Flash MX (6). Так что архив посмотреть не могу. Только звук послушал. Думал - там что-то неприличное будет, а там гудение какое-то В прошлый раз ты все же клал туда SWF-файл.

У меня как раз нашелся дистрибутив Flash MX Pro 2004 v 7.0, но к сожалению качество современных DVD, продающихся в наших местах, оставляет желать лучшего, короче говоря из 17 файлов дистрибутива читаются 6, даже на только что купленном DVD. Поганые записываемые DVD

Старый 29.12.2007, 22:24
Ostgur вне форума Посмотреть профиль Отправить личное сообщение для Ostgur Посетить домашнюю страницу Ostgur Найти все сообщения от Ostgur
  № 4  
Ответить с цитированием
Ostgur
 
Аватар для Ostgur

Регистрация: Apr 2004
Адрес: macromedia—adobe Любит: Flash MX
Сообщений: 2,860
OVFlash, Flash CS3 можно скачать триал версию с оффициального сайта разработчика Adobe.

Старый 30.12.2007, 17:42
OVFlash вне форума Посмотреть профиль Отправить личное сообщение для OVFlash Найти все сообщения от OVFlash
  № 5  
Ответить с цитированием
OVFlash

Регистрация: Dec 2007
Сообщений: 11
Конечно триал, раньше вроде она как 500 долларов стоила, сейчас не знаю
В общем - я в примерах кода когда в этом разделе форума искал звуковые, почему-то ни один не нашел. Ни по слову "soun" ни по слову "зву".
А тема нужная. Может мой запишем?

Суть - надо зациклить звук, у которого (особенно если он MP3) есть паузы в начале и конце, короче, чтобы интервал между началом воспроизведения был немного меньше длины звука.

Я воспользовался советом из статьи "Ди-джейский пульт от Антона Волкова (с изложением технологии создания)":

"Дело в том, что звуковой тайм-лайн как бы разбит на фреймы по 46.43 микросекунды. Поэтому, если мы пытаемся запустить звук между фреймами, то реально он запуститься только в следующем.

Кажется, не смертельно, но когда вы запускаете/выключаете лупы несколько раз, накапливается большая ошибка и начинается десинхронизация лупов (ударные сами по себе, а бас сам по себе).

Единственным правильным решением остаётся все лупы делать длиной кратной 46.43 мс, и осуществлять запуск в кратные 46.43 мс точки тайм-лайна.

Для реализации второго необходимо взять звук нулевой длины. Запустить его, прописав у него в onSoundComplete повторный запуск самого же себя, ну и сделать какую то засечку для основного кода."

Код:
var s=new Sound();
s.attachSound("music");

var pause=2;// in dt (dt=46.43 ms)
var interv=Math.ceil((s.duration)/46.43)-pause;
var left=0; // intervals left (intervals of 46.43)

var e=new Sound();
e.attachSound("empty");
e.onSoundComplete = function() {
	this.start();
	left=left-1;
	if (left<=0) {
		left=interv;
		s.start();
	};
};
e.start();
Хотя у меня звук один, я боялся, что через несколько повторений из-за ошибок округления начнут пробегать паузы между итерациями.

Тут встала еще одна тонкость - Flash MX 6 звук wav нулевой длины не импортирует, говорит, ошибка возникла при попытке чтения.

Пришлось сделать просто короткий звук (все укорачивая в программе Звукозапись записанный звук, и делая его все тише, ибо к сожалению звук нулевой громкости то ли не вызывает onSoundComplete, то ли еще что). Кстати мой Flash и звук просто короткий не импортирует, с той же ошибкой. Т.е. слишком укоротить тоже опасно. Я в hex-виде смотрел wav - там было несколько сэмплов (1-2 по 4 байта, ибо было stereo 16 bit) - и все равно не импортировалось. Зато если там байт 30, все ОК.

Звук если что могу приложить к примеру.
И описать для новичков, как правильно импортировать звук и приделать к нему alias.
Будет ли это полезно?

Переменная pause задает количество интервалов по 46,... мс, на которые укорачиваем звук. Правда, его начальная длина принимается округленной до ближайшего целого количества этих самых интервалов, так что даже при pause==0 звук может быть слегка удлинен или укорочен.
Конечно, надо будет и комментариев добавить


Последний раз редактировалось OVFlash; 30.12.2007 в 17:52.
Старый 30.12.2007, 17:46
Ostgur вне форума Посмотреть профиль Отправить личное сообщение для Ostgur Посетить домашнюю страницу Ostgur Найти все сообщения от Ostgur
  № 6  
Ответить с цитированием
Ostgur
 
Аватар для Ostgur

Регистрация: Apr 2004
Адрес: macromedia—adobe Любит: Flash MX
Сообщений: 2,860
уже 1000 раз обсуждалось на форуме

Старый 30.12.2007, 17:54
OVFlash вне форума Посмотреть профиль Отправить личное сообщение для OVFlash Найти все сообщения от OVFlash
  № 7  
Ответить с цитированием
OVFlash

Регистрация: Dec 2007
Сообщений: 11
А я по поиску в первой странице не нашел, и в примерах тоже.
Звук нулевой длины и просто короткий почему не импортируется? А автор статьи советует.

Создать новую тему Ответ Часовой пояс GMT +4, время: 20:26.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 20:26.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.