Hi,

I have a flex application that creates a globalVO object upon
initialization.
When a change occurs in my globalVO I manually dispatch an event.

In the init function of my main application I add an event listener for
my custom event.   When the application runs I can see that the event is
being dispatched, but my main application doesn't pick it up.

Is there a way to assign a target for the event dispatcher?  ie:
dispatcher.target = main?

Help please.

Here is a sample of my code - I cut it up to demonstrate what I'm doing.

Main.mxml
import com.test.reports.events.GlobalChangeEvent;
import com.test.reports.vo.GlobalVO;

public var globalVO:GlobalVO;

private function init():void{
        this.addEventListener("globalChangeEvent",
globalChangeEventHandler);
        globalVO = new GlobalVO();

         //test the globalChangeEventHandler
        //when someValue is set it will dispatch my custom event
       globalVO.someValue = "test";
}
private function globalChangeEventHandler():void{
       //this function never gets called
       Alert.show("I heard the global change event");
}

GlobalVO.as
package com.test.reports.vo
{
     import com.test.reports.events.GlobalChangeEvent;
     import flash.events.EventDispatcher;

     public class GlobalVO
     {
            private function dispatchChangeEvent():void{
                 var eventObj:GlobalChangeEvent = new
GlobalChangeEvent(this, "globalChangeEvent");
                 var dispatcher:EventDispatcher = new EventDispatcher();
                 dispatcher.dispatchEvent(eventObj);
            }

           public function set someValue(val:String):void{
                 dispatchChangeEvent();
           }
      }
}

GlobalChangeEvent
package com.test.reports.events
{
     import flash.events.Event;
     import com.test.reports.vo.GlobalVO;

     public class GlobalChangeEvent extends Event
     {
         public var globalVO:GlobalVO;
         //constructor
         public function GlobalChangeEvent(globalVO:GlobalVO,
type:String){
             //TODO: implement function
             super(type, true);
             this.globalVO = globalVO;
         }
         override public function clone():Event{
             return new GlobalChangeEvent(globalVO, type);
         }
     }
}

Reply via email to