То ли у меня лыжи не едут, то ли еще что.
Мне нужно, чтобы сначала я тормознул звук, а потом запустил его с того места, где он остановился. Запускаю, естественно, через sound.play( pausePosition ). Но, как я понимаю, в этот момент создается новый SoundChannel, а мне нужно, чтобы канал остался тем же самым, потому что несколько раньше на него был повешен листенер на Event.SOUND_COMPLITE.
Никто такую задачку не решал?
Собственно, вот кусок кода, чтобы понимать, что именно я хочу сделать. Это фрамент класса, который оптом фризит все каналы звука, которые переданы ему через addChannel, и оптом же запускает с той позиции, где зафризил.

Код AS3:
private static var _currentSoundChannels : Dictionary = new Dictionary();
public static function addChannel( channel : SoundChannel, sound : Sound ) : void
{
_currentSoundChannels[channel] = { sound : sound, pausePosition : -1 };
}
public static function freezeAll() : void
{
for ( var soundChannel : SoundChannel in _currentSoundChannels )
{
_currentSoundChannels[soundChannel].pausePosition = soundChannel.position;
soundChannel.stop();
}
}
public static function unFreezeAll() : void
{
for ( var soundChannel : SoundChannel in _currentSoundChannels )
{
var sound : Sound = _currentSoundChannels[soundChannel].sound as Sound;
var pausePosition : int = _currentSoundChannels[soundChannel].pausePosition;
soundChannel = sound.play( pausePosition );
}
}