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

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

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

блогер
Регистрация: Nov 2007
Адрес: Almaty, Moscow
Сообщений: 396
Записей в блоге: 5
Отправить сообщение для Партизан с помощью Skype™
Ну может вам это поможет. У меня прекрасно работает, без щелчков.
Код AS1/AS2:
package
{
	import com.greensock.TweenMax;
	import flash.events.Event;
	import flash.events.IOErrorEvent;
	import flash.media.Sound;
	import flash.media.SoundChannel;
	import flash.media.SoundTransform;
	import flash.net.URLRequest;
 
 
	/**
	 * ...
	 * @author Mikhail Klabukov
	 */
	public class BackgroundSound
	{
		static public const SOUND_OFF:String = "soundOff";
		static public const SOUND_ON:String = "soundOn";
		private var sound:Sound;
		private var channel:SoundChannel
		private var played:Boolean = false;
		private var _pos:Number;
		private var st:SoundTransform;
 
		public function BackgroundSound()
		{
			sound = new Sound(new URLRequest('**********soundUrl**********'));
			sound.addEventListener(IOErrorEvent.IO_ERROR, errorSoundLoad)
			channel = sound.play(0, 10000);
			played = true;
			MainControls.self.addEventListener(MainControls.SOUND_SWITCH, switchSound);
		}
 
		private function errorSoundLoad(e:IOErrorEvent):void
		{
			trace(e)
		}
 
		private function switchSound(e:Event):void
		{
			if (TweenMax.isTweening(st))
				return;
			st = channel.soundTransform;
			if (played)
			{
				_pos = channel.position;
				TweenMax.to(st, 2, {volume: 0, onUpdate: function():void
					{
						channel.soundTransform = st;
					}, onComplete: function():void
					{
						channel.stop();
					}});
				played = false
				MainControls.self.dispatchEvent(new Event(SOUND_OFF));
			}
			else
			{
				channel = sound.play(_pos, 10000);
 
				TweenMax.to(st, 3, {volume: 1, onUpdate: function():void
					{
						channel.soundTransform = st;
					}});
				played = true;
				MainControls.self.dispatchEvent(new Event(SOUND_ON));
 
			}
		}
 
	}
 
}

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

Регистрация: Feb 2008
Сообщений: 21
Цитата:
Сообщение от Партизан Посмотреть сообщение
Ну может вам это поможет. У меня прекрасно работает, без щелчков.
В том то и дело, что щелчки так же есть. Методом научного тыка удалось установить, что щелчки при быстром изменении громкости есть всегда во флеше. Просто на некоторых звуках это заметнее. Пример, берем тот же ютуб, ищем видео где играют на пианино. http://www.youtube.com/watch?v=x9a5u4JzkLg и ползунок громкости резко двигаем вверх-вниз. И получаем тоже самое шуршание что и в моем коде.

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

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

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


 


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


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