I come across a weird problem when I wanted to delete some event listners:
public class test extends MovieClip
{
var already_loaded:Boolean = false;
public function test ( )
{
reload ();
btn.addEventListener (MouseEvent.MOUSE_DOWN, reload);
function reload ()
{
if (already_loaded == true)
{
trace ("a hasEventListener "+mc.hasEventListener(MouseEvent.MOUSE_DOWN));
mc.removeEventListener (MouseEvent.MOUSE_DOWN, tracer);
trace ("b hasEventListener "+mc.hasEventListener(MouseEvent.MOUSE_DOWN));
}
mc.addEventListener (MouseEvent.MOUSE_DOWN, tracer);
function tracer (event:MouseEvent):void
{
trace ("ignit.");
}
}
already_loaded = true;
}
}
this code doesn’t work, but when i change the position of the function tracer(), it works
<pre>public class test extends MovieClip
{
var already_loaded:Boolean = false;
public function test ( )
{
reload ();
btn.addEventListener (MouseEvent.MOUSE_DOWN, reload);
function reload ()
{
if (already_loaded == true)
{
trace ("a hasEventListener "+mc.hasEventListener(MouseEvent.MOUSE_DOWN));
mc.removeEventListener (MouseEvent.MOUSE_DOWN, tracer);
trace ("b hasEventListener "+mc.hasEventListener(MouseEvent.MOUSE_DOWN));
}
mc.addEventListener (MouseEvent.MOUSE_DOWN, tracer);
}
function tracer (event:MouseEvent):void
{
trace ("ignit.");
}
already_loaded = true;
}
}</pre>