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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 01.05.2010, 19:09
Royerder вне форума Посмотреть профиль Отправить личное сообщение для Royerder Найти все сообщения от Royerder
  № 1  
Ответить с цитированием
Royerder
[+4 26.02.09]

Регистрация: Feb 2009
Сообщений: 17
По умолчанию Проблема с воспроизведением звука

Делаю будильник, так, для себя, и наткнулся на дону проблему. Она касается подгрузки звука из папки. Как я делаю:

— Кадр 1

Даю пользователю выбрать время, оно заносится в три динамических поля — день, час и минуты. Эти три поля присутствуют во втором кадре, за счет того, что во втором нет ключевого.

— Кадр 2

Пользователь кликает Ок и переходит на второй кадр, где отображаются системные часы, как заставка. Здесь у меня и возникла проблема, с воспроизведением звука. Пишу так:

Код AS1/AS2:
onEnterFrame = function () { //для того, что бы дата сверялась каждую секунду, а не один раз, при переходе на кадр
if (alarm_day == local_day && alarm_hours == local_hours && alarm_minutes == local_minutes { //как писал выше, каждую секунду сверяю установленное время с системным
var s:Sound = new Sound(); //создаю переменную с звуком
s.loadSound("sound.mp3", true); //подгружаю звук из папки
s.start(); //запускаю воспроизведение
}
}
Проблема, собственно, в том, что звук воспроизводится каждую секунду снова.

Старый 01.05.2010, 20:31
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 2  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Дело в том, что проверка не перестаёт проверятся никогда, и каждые 25-30 раз в секунду опять и опять создается и запускается новый Sound в течении минуты.
Может поможет
Код AS1/AS2:
 delete onEnterFrame

Старый 01.05.2010, 20:49
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 3  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Лучше так:
Код AS1/AS2:
var s:Sound = new Sound();
s.loadSound('sound.mp3', false); //загружаем заранее, чтобы в нужный момент не было задержки
 
this.onEnterFrame = checkTime;
 
function checkTime () {
	if (alarm_day == local_day && alarm_hours == local_hours && alarm_minutes == local_minutes) { //как писал выше, каждую секунду сверяю установленное время с системным
		delete this.onEnterFrame ;
		s.start();
	}	
}
Преимущество - все работает как вам надо, а если нужно опять "завести будильник", то , выставив ваше время, достаточно опять назначить функцию проверки строкой:
Код AS1/AS2:
this.onEnterFrame = checkTime;


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

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

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


 


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


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