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

блогер
Регистрация: 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));
 
			}
		}
 
	}
 
}