А у меня что-то не получается...
Имеется класс, в котором генерируются собственные события с помощью dispatchEvent:

Код AS3:
public function sndPlay() : void
{
if (_sound == null) return;
...
this.dispatchEvent(new Event(SoundEvent.SOUND_PLAY, true));
return;
}
public function sndPause() : void
{
if (_sound == null) return;
_position = _soundchannel.position;
_soundchannel.stop();
soundstate = MusicPlayerStates.PAUSE;
this.dispatchEvent(new Event(SoundEvent.SOUND_PAUSE, true));
return;
}
public function sndStop() : void
{
if ((_sound == null) || (soundstate == MusicPlayerStates.STOP)) return;
_position = 0;
_soundchannel.stop();
if (_isLoading) _sound.close();
soundstate = MusicPlayerStates.STOP;
this.dispatchEvent(new Event(SoundEvent.SOUND_STOP, true));
return;
}
В том месте, где создаётся экземпляр класса, я ставлю прослушиватель собственных сгенерированных событий:

Код AS3:
musicSound = new MusicPlayerSound(_loc_2, _autoplay, true);
...
musicSound.addEventListener(SoundEvent.SOUND_STREAMERROR, soundError);
...и не работает
Класс SoundEvent:

Код AS3:
public class SoundEvent extends Event
{
public static const SOUND_PLAY:String = "soundPlay";
public static const SOUND_PAUSE:String = "soundPause";
public static const SOUND_STOP:String = "soundStop";
public static const SOUND_LOAD:String = "soundLoad";
public static const SOUND_STATE:String = "soundState";
public static const SOUND_STREAMERROR:String = "soundStreamError";
public var data: Object;
public function SoundEvent(type:String, date: Object, bubbles:Boolean=false, cancelable:Boolean=false)
{
super(type, bubbles, cancelable);
this.data = data;
}
override public function clone():Event
{
return new SoundEvent(type, data, bubbles, cancelable);
}
}
Событие внутри класса срабатывает на ура, а в экземпляре - нет
Help me please