Часто вылетает известная ошибка, причем в любой момент
"Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null"."
Причем в месте где ее быть не должно, даже когда ставлю проверку - все равно вылетает.
Во собственно код:

Код AS3:
package
{
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.events.Event;
import flash.media.SoundTransform;
/**
* ...
* @author FieryWall
*/
public class Sounds
{
//...
public var collision1:Sound;
public var collision2:Sound;
//...
//...
private var collision1S:SoundChannel;
private var collision2S:SoundChannel;
//...
public var musicVelume:Number;
public var soundVelume:Number;
public function Sounds()
{
//...
collision1 = new Сollision1_c();
collision2 = new Сollision2_c();
//...
musicVelume = 1;
soundVelume = 1;
}
public function play(sound:Sound, peak:int = 0):void
{
var mt:SoundTransform = new SoundTransform();
var st:SoundTransform = new SoundTransform();
st.pan = peak;
mt.volume = musicVelume;
st.volume = soundVelume;
switch(sound){
//...
case collision1:collision1S = collision1.play(0, 1);
collision1S.soundTransform = st;
collision1S.addEventListener(Event.SOUND_COMPLETE, soundComplite); break;
//Ошибку показывает здесь(например), не пойму почему =(
case collision2:collision2S = collision2.play(0, 1);
collision2S.soundTransform = st;
collision2S.addEventListener(Event.SOUND_COMPLETE, soundComplite); break; //Или здесь
//...
}
}
public function stop(sound:Sound):void {
switch(sound){
//...
case collision1:if (collision1S) {
collision1S.stop();
collision1S = null;
}; break;
case collision2:if (collision2S) {
collision2S.stop();
collision2S = null;
}; break;
//...
}
}
public function isPlaying(sound:Sound):Boolean {
switch(sound){
//...
case collision1:if (collision1S) {
return true;
} else {
return false
}; break;
case collision2:if (collision2S) {
return true;
} else {
return false }; break;
//...
default:return false;
}
}
public function updateVelume(mv:Number, sv:Number):void {
var mt:SoundTransform = new SoundTransform(mv);
var st:SoundTransform = new SoundTransform(sv);
musicVelume = mv; soundVelume = sv;
//...
if (collision1S) {
collision1S.soundTransform = st;
}
if (collision2S) {
collision2S.soundTransform = st;
}
//...
}
private function soundComplite(e:Event):void
{
//...
if (e.target === collision1S) {
collision1S = null;
}
if (e.target === collision2S) {
collision2S = null;
}
//...
}
}
}
Это клас озвучки, для примера я оставил две переменные типа Sound и типа SoundChannel. Вылетает в функции play. При наведении null у переменных типа SoundChannel