On 9/27/13 8:38 AM, "mark goldin" <[email protected]> wrote:
>Well according to the docs Flex calls the IMXMLObject.initialized() method >after it initializes the properties of the component. >Isn't it too late for what I need? My point is that, if you want to use MXML, then you have to give up on constructor-time work and write the AS classes to expect work to be done later. There is no solution that will give you constructor-time property values. -Alex > >On Thu, Sep 26, 2013 at 10:24 PM, Alex Harui <[email protected]> wrote: > >> Hi Mark, >> >> That is a limitation of MXML. If you have an AS class that is based on >> UIComponent, you are encouraged to use the lifecycle methods like >> invalidateProperties/commitProperties instead of doing work off the >> constructor. If you have an AS class not based on UIComponent, a common >> pattern is to implement IMXMLObject and do all of the work in the >> initialize method so it can be used in MXML, and then when instantiating >> in AS, you will do: >> >> var _myClass_mxml:MyClass_mxml = new MyClass_mxml(); >> _myClass.initialize(document, "_myClass"); >> >> -Alex >> >> On 9/26/13 7:14 PM, "mark goldin" <[email protected]> wrote: >> >> >No, that does not work because what I am instantiating is an mxml class >> >that is based on MyClass: >> >MyClass_mxml: >> ><ns:MyClass> >> >... >> ></ns:MyClass> >> > >> >and then in AS: >> >var _myClass_mxml:MyClass_mxml = new MyClass_mxml(); This will not >>take a >> >parameter to a constructor. >> > >> > >> >On Thu, Sep 26, 2013 at 8:55 PM, Mark Kessler >> ><[email protected]>wrote: >> > >> >> Oh I see your using AS to create an instance of it. >> >> >> >> This would work for accessing that property... >> >> var newMyClass:MyClass = new MyClass() >> >> newMyClass.myProperty = object being passed. >> >> >> >> >> >> But since your using AS you could pass it in the constructor now. >> >> >> >> public class MyClass >> >> { >> >> //Constructor >> >> public function MyClass (myProp:Object) >> >> { >> >> //init stuff using whatever you passed. >> >> } >> >> } >> >> >> >> var newMyClass:MyClass = new MyClass(My prop or object or whichever >> >>matches >> >> your needs.) >> >> >> >> >> >> >> >> -Mark >> >> >> >> >> >> On Thu, Sep 26, 2013 at 9:01 PM, mark goldin <[email protected]> >> >> wrote: >> >> >> >> > That is not exactly what I have. Yes, I too have an mxml class >>based >> >>on >> >> > another AS class. But I am creating an instance of my mxml class >>like >> >> this: >> >> > var newMyClass:MyClass = new MyClass(); >> >> > So, how can I pass a value for myProperty to newMyClass? My >> >>understanding >> >> > as soon as var newMyClass:MyClass = new MyClass(); executes all >> >>children >> >> on >> >> > newMyClass will be created but I need to have myProperty before >>that. >> >> > >> >> > >> >> >> >>
