diff --git a/src/as/com/threerings/util/Config.as b/src/as/com/threerings/util/Config.as index e1ce3f132..ab1d3e77c 100644 --- a/src/as/com/threerings/util/Config.as +++ b/src/as/com/threerings/util/Config.as @@ -22,11 +22,12 @@ package com.threerings.util { import flash.events.NetStatusEvent; +import flash.events.EventDispatcher; import flash.net.SharedObject; import flash.net.SharedObjectFlushStatus; -public class Config +public class Config extends EventDispatcher { /** * Constructs a new config object which will obtain configuration @@ -53,6 +54,9 @@ public class Config { _so.data[name] = value; _so.flush(); // flushing is not strictly necessary + + // dispatch an event corresponding + dispatchEvent(new ConfigValueSetEvent(name, value)); } /** diff --git a/src/as/com/threerings/util/ConfigValueSetEvent.as b/src/as/com/threerings/util/ConfigValueSetEvent.as new file mode 100644 index 000000000..98a4a0036 --- /dev/null +++ b/src/as/com/threerings/util/ConfigValueSetEvent.as @@ -0,0 +1,34 @@ +package com.threerings.util { + +import flash.events.Event; + +/** + * Dispatched whenever a config value is changed. + */ +public class ConfigValueSetEvent extends Event +{ + /** The type of a ConfigValueSetEvent. */ + public static const TYPE :String = "ConfigValSet"; + + /** The name of the config value set. */ + public var name :String; + + /** The new value. */ + public var value :Object; + + /** + */ + public function ConfigValueSetEvent (name :String, value :Object) + { + super(TYPE); + + this.name = name; + this.value = value; + } + + override public function clone () :Event + { + return new ConfigValueSetEvent(name, value); + } +} +}