Labs

It works in my machine!

SoundItem Class

with one comment

well we start with this Sound Util, just embed the SoundTransform and SoundChannel in one single Class and the fade ability (uses Tween Lite)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
package com.grupow.media 
{
	import flash.media.Sound;
	import flash.media.SoundChannel;
	import flash.media.SoundLoaderContext;
	import flash.media.SoundTransform;
	import flash.net.URLRequest;
 
	import gs.TweenLite;
	import gs.easing.Linear;
 
	/**
	* ...
	* @author Raúl Uranga
	*/
	public class SoundItem extends Sound
	{
 
		private var _channel:SoundChannel
		private var _soundTransform:SoundTransform;
 
		public function SoundItem(stream:URLRequest = null,conext:SoundLoaderContext = null) {
 
			super(stream,conext);
 
			_soundTransform = new SoundTransform();
 
		}
 
		public function fade(volume:Number,ms:int = 1000,handler:Function = null):void
		{
			//
			if (volume < 0)
				volume = 0;
			//
			if (volume > 1)
				volume = 1;
			//	
			TweenLite.to(this, ms/1000, {volume:volume,ease:Linear.easeNone,onComplete:handler});
		}
 
		public override function play(startTime:Number = 0,loops:int = 0,sndTransform:SoundTransform = null):SoundChannel
		{
			if(sndTransform != null)
				_soundTransform = sndTransform; 
 
			_channel = super.play(startTime, loops, _soundTransform);
			return _channel;
		}
 
		public function stop():void
		{
			try {
				_channel.stop();
			}catch (e:*) {
				//trace("SoundItem Error: SoundChannel is not defined, you need to start playing");
			}
		}
 
 
		public function get volume():Number
		{ 
			return _soundTransform.volume;
		}
 
		public function set volume(value:Number):void 
		{
			_soundTransform.volume = value;
 
			try {
				_channel.soundTransform = _soundTransform;
			}catch (e:*) {
				//trace("SoundItem Error: SoundChannel is not defined, you need to start playing");
			}
		}
 
	}
}

code available at google code

cheers!

Written by Raúl

October 23rd, 2008 at 3:45 pm

Posted in AS3

One Response to 'SoundItem Class'

Subscribe to comments with RSS or TrackBack to 'SoundItem Class'.

  1. [...] This entry was posted in AS3. Bookmark the permalink. Post a comment or leave a trackback: Trackback URL. [...]

Leave a Reply