I don’t know if there is a better or easier way to do this, but I have a class (“parent class”) which contains another class stored as a private variable (“variable class”). Whenever that variable class dispatches an event, I have to relay that back through the parent class.
I am already extending another important class, so I can’t create a new class that is extended by the parent and relays the information automatically.
This is my current code:
private function addEventRelayers():void
{
// Values changed
this.variableClass.addEventListener(VariableClassEvent.VAR1_CHANGED, relayEvent);
this.variableClass.addEventListener(VariableClassEvent.VAR2_CHANGED, relayEvent);
this.variableClass.addEventListener(VariableClassEvent.VAR3_CHANGED, relayEvent);
this.variableClass.addEventListener(VariableClassEvent.MAX_VAR1_CHANGED, relayEvent);
this.variableClass.addEventListener(VariableClassEvent.MIN_VAR1_CHANGED, relayEvent);
this.variableClass.addEventListener(VariableClassEvent.MAX_VAR2_CHANGED, relayEvent);
this.variableClass.addEventListener(VariableClassEvent.MIN_VAR2_CHANGED, relayEvent);
this.variableClass.addEventListener(VariableClassEvent.MAX_VAR3_CHANGED, relayEvent);
this.variableClass.addEventListener(VariableClassEvent.MIN_VAR3_CHANGED, relayEvent);
//Values not accepted
this.variableClass.addEventListener(VariableClassEvent.MAX_VAR1_EXCEEDED, relayEvent);
this.variableClass.addEventListener(VariableClassEvent.MIN_VAR1_EXCEEDED, relayEvent);
this.variableClass.addEventListener(VariableClassEvent.MAX_VAR2_EXCEEDED, relayEvent);
this.variableClass.addEventListener(VariableClassEvent.MIN_VAR2_EXCEEDED, relayEvent);
this.variableClass.addEventListener(VariableClassEvent.MAX_VAR3_EXCEEDED, relayEvent);
this.variableClass.addEventListener(VariableClassEvent.MIN_VAR3_EXCEEDED, relayEvent);
function relayEvent(de:VariableClassEvent):void
{ this.dispatchEvent(de.clone()); }
}
A major problem if is I update the variable class and add a new event, I have to also add this event in the addEventRelayers function.
Any one have any tips on how this can be easier accomplished?