Hi,

Its probably a good idea to (re)read the dev guide section about working 
with events as it may help clear this up for you. The general problem is 
that the VO is not part of the parent child hierarchy of the app so it 
cant bubble up the chain.

Your globalVO needs to either (a) dispatch an event on the application 
itself(not a good idea) or (b) your application needs to listen to the 
globalVO. There are other alternatives aswell but these should be a help 
to you right now.

(a) Application.dispatchEvent("globalChange"); //or similar (in VO).

(b) globalVO.addEventListener("globalChange", globalVOChangeHandler);

Option (b) will mean your globalVO will need to be an EventDispatcher 
subclass or have an EventDispatcher instance variable and a custom 
method for attaching an event listener to the instance variable event 
dispatcher(know what i mean?).

[snip]

> 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();
>            }

FYI. There is a property_change event(or some similar name) that makes 
this pretty easy. eg)

class Foo{

   var x:Number=0;

   funciton Foo(){
     addEventListener(PropertyChangeEvent.propertyChange,
                     handlePropertyChange);
   }

   function handlePropertyChange(e:PropertyChangeEvent):void{
     if (e.property == "x" || e.property == "y"){
        //do something.
     }
   }

}

HTH.
  -- shaun

Reply via email to