views:

48

answers:

1

Hi all,

I have a simple swf which create flvplayback object and load from time to time an flv, replacing the old one. I manage everything in a wrapper class, identified with mdcVC in the code below, with a variable FLVPlayback in it.

I notice one strange thing, before loading a new flv, the old one is replaced and the listeners removed. However in the fragment of code where this happens seems that the VideoEvent is not removed.

   trace("listener:" + mdcVC.flvPlayer.hasEventListener(VideoEvent.STATE_CHANGE));
   trace("listener:" + mdcVC.flvPlayer.hasEventListener(IOErrorEvent.IO_ERROR));
   trace("listener:" + mdcVC.flvPlayer.hasEventListener(NetStatusEvent.NET_STATUS));
   trace("listener:" + startPlayButton.hasEventListener(MouseEvent.MOUSE_DOWN));

  mdcVC.flvPlayer.removeEventListener(VideoEvent.STATE_CHANGE,onFLVStateChange);
  mdcVC.flvPlayer.removeEventListener(IOErrorEvent.IO_ERROR, onFLVLoadError);
  mdcVC.flvPlayer.removeEventListener(NetStatusEvent.NET_STATUS, onFLVLoadError);
  startPlayButton.removeEventListener(MouseEvent.MOUSE_DOWN,mdcVC.startPlay);

   trace("listener:" + mdcVC.flvPlayer.hasEventListener(VideoEvent.STATE_CHANGE));
   trace("listener:" + mdcVC.flvPlayer.hasEventListener(IOErrorEvent.IO_ERROR));
   trace("listener:" + mdcVC.flvPlayer.hasEventListener(NetStatusEvent.NET_STATUS));
   trace("listener:" + startPlayButton.hasEventListener(MouseEvent.MOUSE_DOWN));

This the output:

true
true
true
true

true <----- (why is that ??)
false
false
false

enter code here
A: 

Are you sure you didn't add that event twice, one with useCapture and another one without it? Because if that's the case, you'll also have to remove it twice.

MrKishi