title: Flex 4.5 Not listening to custom event dispatched in custom AS class
body: <p>I have the following situation:</p>
  
  <p>I have an event handler, that displays small messages in my application's statusbar.
  These messages get passes through by dispatching events from custom components.
  A simple message could be like "HTTP Error" or so.</p>
  
  <p>Now, the main event listener, in the main application file, listens to the event dispatched by any custom component, but seems to refuse listening to events dispatched by custom AS classes.</p>
  
  <p>Here is my code for the custom event:</p>
  
  <pre><code>package main.events
  {
      import flash.events.Event;
  
      public class ShowNoticeEvent extends Event
      {
          public var message:String;
          public static const SHOW_NOTICE:String = "showNotice";
  
          public function ShowNoticeEvent(type:String, msg:String, bubbles:Boolean = false, cancelable:Boolean = false)
          {
              super(type, bubbles, cancelable);
              this.message = msg;
          }
  
          override public function clone():Event
          {
              return new ShowNoticeEvent(type, message);
          }
      }
  }
  </code></pre>
  
  <p>This is the event listener in the main application file:</p>
  
  <pre><code>addEventListener(ShowNoticeEvent.SHOW_NOTICE, showNoticeListener, true);
  </code></pre>
  
  <p>And this is the custom AS class that dispatches the custom event. I pasted all the code, so you could see the whole part of it.</p>
  
  <pre><code>   package components.dashboard
  {
      import components.dashboard.models.*;
  
      /* Event imports */
      import flash.events.*;
      import main.events.*;
  
      import mx.controls.Alert;
      import mx.core.UIComponent;
      import mx.rpc.events.FaultEvent;
      import mx.rpc.events.ResultEvent;
      import mx.rpc.http.HTTPService;
  
      [Event(name="showNotice", type="main.events.ShowNoticeEvent")]
      public class Controller extends UIComponent
      {
          private var baseUrl:String;
  
          public function Controller(baseUrl:String)
          {
              this.baseUrl = baseUrl;
          }
  
          public function getRunningQuotations():void
          {
              var runningQuotationsList:RunningQuotationsList = RunningQuotationsList.getInstance();
  
              execService("index.php?a=1", runningQuotationsList.updateList, "pnlRunningQuotations"); 
          }
  
          public function getRecentProjects():void
          {
              var recentProjectsList:RecentProjectsList = RecentProjectsList.getInstance();
  
              execService("index.php?a=2", recentProjectsList.updateList, "pnlRecentProjects");
          }
  
          public function getLatestCustomers():void
          {
              var latestCustomersList:LatestCustomersList = LatestCustomersList.getInstance();
  
              execService("index.php?a=3", latestCustomersList.updateList, "pnlLatestCustomers");
          }
  
          private function execService(url:String, listener:Function, component:String):void
          {
              var basicService:HTTPService = new HTTPService(baseUrl);
              basicService.showBusyCursor = true;
              basicService.addEventListener(FaultEvent.FAULT, function(e:FaultEvent):void{httpFault(e, component)});
              basicService.method = "POST";
              basicService.resultFormat = "text";
              basicService.url = url;
              basicService.addEventListener(ResultEvent.RESULT, listener);
              basicService.send();            
          }
  
          private function httpFault(event:FaultEvent, component:String = null):void {
              var faultstring:String = event.fault.faultString;
              var eventObj:ShowNoticeEvent = new ShowNoticeEvent(ShowNoticeEvent.SHOW_NOTICE, faultstring, true); 
  
              dispatchEvent(eventObj);
              trace(faultstring);
          }
      }
  }
  </code></pre>
  
  <p>So to sum it all up:
  - The event listener listens to the custom event dispatched by any custom component.
  - The event listener does not listen to the custom event duspatched by an AS class.</p>
  
  <p>Those who wonder, the event really gets dispatched, that's why I added a trace call.</p>