Hello,
I often need to recognize for some of my gui elemets when the embedded
gui elements (childs) have changed or vice-versa the parent elements
has changed in a property, like "_x", "_width", etc. to repaint the
necessary elements of the GUI.
So what is the best way to do this?
I stumbled over the methods of Object to add or watch properties. This
allows myself to build something like this:
class MyUIObject extends Object
{
public var _x:Number;
public function GUIObject() {
this.addProperty("_x", getX, setX);
this.watch("_x",onChange,{test: 123}); // possibility 2
}
// possibility 2
private function onChange(prop, oldVal, newVal, userData):Boolean
{
if (prop=="_x")
{
onX(newVal);
return true;
} else {
return false;
}
}
private function getX(Void):Number {
return _x;
}
private function setX(x:Number):Void {
onX(x); // possibility 1
}
public function onX(x:Number):Void {
}
}
This way I can set and get _x:
var muo:MyUIObject = new MyUIObject();
trace("1: "+muo._x)
muo._x.onX = function(x)
{
trace("2: "+this._x);
trace("3: "+x);
}
muo._x = 100;
trace("4: "+muo._x)
But the onX method is invoked BEFORE _x is actually set, why?
Output:
1: undefined
2: undefined
3: 100
4: 100
Is there a better way to have an onX method, which perhaps is invoked
immediately after _x was set?
Thank you,
Matthias
_______________________________________________
[email protected]
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com