Hi,

Basically, you have to change the way you think about instantiation.

Calling the new operator creates memory allocation, accessibility, enables
and adds some listeners. This is like preinitialization.

What you now have to think is, addChild() is now the constructor of any
UIComponent.

If you follow this flow you are fine;

Call you constructor.
Set any initialization properties.
Set dimensions.
Add listeners.

Now, that you instance is ready to go, when you are ready to addChild() you
will then have access to your children.

When you call addChild(), createChildren is called. You will always have
access to the children, unless some a re deferred.

Just get over the fact that you call addChild() and all is well.

What problems are you facing without being able to access box children after
the new call and before the addChild() call?

Peace, Mike


On 4/30/07, bhaq1972 <[EMAIL PROTECTED]> wrote:

  Thanks Mike

If i want to create a new instance of an mxml component, how can i
ensure its children get created as well.

--- In flexcoders@yahoogroups.com <flexcoders%40yahoogroups.com>, "Michael
Schmalle"
<[EMAIL PROTECTED]> wrote:
>
> the flow,
>
> new VBox()
>
> "I was wrong about the constructor calling initialize()" :)
>
> addChild()
> - addChildAt()
> - childAdded()
> - initialize()
> - createChildren()
>
> Peace, Mike
>
> On 4/30/07, Michael Schmalle <[EMAIL PROTECTED]> wrote:
> >
> > Ha it's the morning and just waking up...
> >
> > The real anwer is,
> >
> > addChild() will eventually call createChildren(). Since you have
not
> > called addChild() on your VBox mxml component, createChildren()
has not been
> > called.
> >
> > createChildren() does not get called from a constructor call,
just
> > initialize().
> >
> > Peace, Mike
> >
> > On 4/30/07, Michael Schmalle < [EMAIL PROTECTED]> wrote:
> > >
> > > Hi,
> > >
> > > Don't quote me but,
> > >
> > > I think it has to do that you do not have a parent on your
main VBox
> > > instance.
> > >
> > > I don't think createComponentsFromDescriptors() is called until
> > > parentChanged() or something is called (IE the parent VBox
actually has a
> > > parent).
> > >
> > > This shouldn't be a problem, the timing of invalidation gives
you plenty
> > > of time to initialize your children when they are finally
added to the
> > > display list of the stage.
> > >
> > > Peace, Mike
> > >
> > > On 4/30/07, bhaq1972 <[EMAIL PROTECTED]> wrote:
> > > >
> > > > This question is very similar to a question someone else
is asking
> > > > (may even be the same thing????)
> > > >
> > > > I've got a component called MyPrintView.mxml
> > > >
> > > > <mx:VBox>
> > > > <mx:Label id="contact"/>
> > > > <mx:PrintDataGrid id="printDG"/>
> > > > </mx:VBox>
> > > >
> > > > when i create an instance of MyPrintView, its children are
not
> > > > created. why is that?
> > > >
> > > > if you addChild() to the Application....they are created.
why is
> > > > that?
> > > >
> > > > <?xml version="1.0" encoding="utf-8"?>
> > > > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";
> > > > initialize="startUP()">
> > > >
> > > > <mx:Script>
> > > > <![CDATA[
> > > > private function startUP():void
> > > > {
> > > > var printView:MyPrintView = new MyPrintView();
> > > > trace(printView);
> > > > trace(printView.printDG, printView.contact); //both null
> > > > addChild(printView);
> > > > trace(printView.printDG, printView.contact); //both not null
> > > >
> > > > }
> > > > ]]>
> > > > </mx:Script>
> > > > </mx:Application>
> > > >
> > > >
> > > >
> > >
> > >
> > >
> > > --
> > > Teoti Graphix
> > > http://www.teotigraphix.com
> > >
> > > Blog - Flex2Components
> > > http://www.flex2components.com
> > >
> > > You can find more by solving the problem then by 'asking the
question'.
> >
> >
> >
> >
> > --
> > Teoti Graphix
> > http://www.teotigraphix.com
> >
> > Blog - Flex2Components
> > http://www.flex2components.com
> >
> > You can find more by solving the problem then by 'asking the
question'.
> >
>
>
>
> --
> Teoti Graphix
> http://www.teotigraphix.com
>
> Blog - Flex2Components
> http://www.flex2components.com
>
> You can find more by solving the problem then by 'asking the
question'.
>




--
Teoti Graphix
http://www.teotigraphix.com

Blog - Flex2Components
http://www.flex2components.com

You can find more by solving the problem then by 'asking the question'.

Reply via email to