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.
>> >> >
>> >> >
>> >>
>>
>>

Reply via email to