This workflow is more or less what the Flex components follow:
package {
import flash.display.MovieClip;
public class Rectangle extends MovieClip {
private var _prop:String = "Hello";
private var propChanged:Boolean = false;
public function Rectangle():void {
trace("Rectangle ::: CONSTRUCTOR");
init();
}
private function init():void {
trace("Rectangle ::: init");
// do stuff here
commitProperties();
}
protected function commitProperties():void {
trace("Rectangle ::: commitProperties");
if(propChanged) {
trace(" - propChanged: ", propChanged);
trace(" - prop: ", _prop);
propChanged = false;
// do stuff with _prop
}
}
[Inspectable(defaultValue="Hello")]
public function get prop():String {
trace("Rectangle ::: get prop");
return _prop;
}
public function set prop(value:String):void {
trace("Rectangle ::: set prop");
if(value != _prop) {
_prop = value;
propChanged = true;
commitProperties();
}
}
}
}
regards,
Muzak
----- Original Message -----
From: "Gregory N" <greg.gousa...@gmail.com>
To: "Flash Coders List" <flashcoders@chattyfig.figleaf.com>
Sent: Thursday, February 19, 2009 10:25 AM
Subject: Re: [Flashcoders] component def doesn't pass params to constructor?
Michael,
Haven't you read my reply to one of your prev. questions?
Well, let me quote it here again:
===
Subject: Re: [Flashcoders] my component not instancing properly on timeline
It seems your problem is similar to one I had with my components.
The matter is that, unlike their behavior in AS2, in AS3 (CS3)
components setters of [Inspectable] parameters are called lo-o-ong
AFTER constructor
As described here
http://www.bit-101.com/blog/?p=1181
So, even if I set my init() as listener for ADDED_TO_STAGE event...
it's still before setters.
for now, I found a solution:
I put my init() in ENTER_FRAME listener and then remove this listener :-)
This means that listeners are called before 1st ENTER_FRAME event.
Perhaps my solution isn't too elegant.... but it works :-)
Also, be sure to duplicate default values for your parameters :-)
===
Note that the above solution is intended to use with sprite-based components.
Perhaps if you subclass UIComponent, the situation with setters is
better... perhaps :-)
_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders