Instead of waiting for an answer i just ran a lil' test:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application creationComplete="eventListener(event)"
xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<![CDATA[
import flash.utils.getQualifiedClassName;
import mx.events.FlexEvent;
private function eventListener(event:Event):void {
trace(getQualifiedClassName(event)+"#"+event.type);
switch(event.type) {
case FlexEvent.APPLICATION_COMPLETE:
this.registeredEventListenerTrace(FlexEvent.CREATION_COMPLETE);
this.registeredEventListenerTrace(FlexEvent.APPLICATION_COMPLETE);
this.removeEventListener(FlexEvent.CREATION_COMPLETE,
eventListener, false);
this.removeEventListener(FlexEvent.APPLICATION_COMPLETE,
eventListener, false);
this.registeredEventListenerTrace(FlexEvent.CREATION_COMPLETE);
this.registeredEventListenerTrace(FlexEvent.APPLICATION_COMPLETE);
break;
case FlexEvent.CREATION_COMPLETE:
this.removeEventListener(FlexEvent.CREATION_COMPLETE,
eventListener, false);
this.registeredEventListenerTrace(FlexEvent.CREATION_COMPLETE);
this.registeredEventListenerTrace(FlexEvent.APPLICATION_COMPLETE);
this.addEventListener(FlexEvent.APPLICATION_COMPLETE, eventListener,
false, 0, true);
this.registeredEventListenerTrace(FlexEvent.CREATION_COMPLETE);
this.registeredEventListenerTrace(FlexEvent.APPLICATION_COMPLETE);
break;
}
}
private function registeredEventListenerTrace(type:String):void {
trace("\t" + type + " is registered: " +
this.hasEventListener(type));
}
]]>
</mx:Script>
</mx:Application>
I was surprised that the FlexEvent.CREATION_COMPLETE can't be removed. This is
quite
shocking...
Best regards.
--- In [email protected], "florian.salihovic" <[EMAIL PROTECTED]>
wrote:
>
> Quoted from Adobe Flex Developers Guide, page 78
>
> "However, it is best practice to use the addEventListener() method.
> This method gives you greater control over the event by letting
> you configure the priority and capturing settings, and use event constants.
> In addition, if you use addEventListener() to add an event handler, you can
> use removeEventListener() to remove the handler when you no longer need
> it. If you add an event handler inline, you cannot call removeEventListener()
> on that handler."
>
> - End of Quote -
>
> What i think is a little bit confusing is, that it's said that inline
> EventListener can't be
> removed? Or is it just a little bit unluckily expressed? Why can't i just
> call
> removeEventListener in ActionScript on the type of event declared in MXML?
>
> Best regards from Germany
>