thanks for the input Gordon, When i think of creating mxml components, i'm thinking lazy/convenience programming.
i want all the component and its children to be created. I can give the children some default values which i can then change after the 'new', if i wish eg My PrintView.mxml <mx:VBox backgroundColor='yellow'> <mx:Label id='contact' text='batman'/> <mx:PrintDataGrid id="printDG"/> </mx:VBox> in code - var printView:MyPrintView = new PrintView(); // change what i like printView.contact.text = 'spiderman'; etc. i thought the generated AS class would look like this class MyPrintView extends VBox { public contact:Label; public printDG:PrintDataGrid public MyPrintView() { super(); contact = new Label(); contact.text = 'batman' addChild(contact) //etc } } --- In flexcoders@yahoogroups.com, "Gordon Smith" <[EMAIL PROTECTED]> wrote: > > > 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? > > The reason that components do not create their children immediately when > they are created is so that you can set properties after calling 'new' > and have these properties affect which children get created. For > example, > > var clock:Clock = new Clock(); > clock.mode = "analog"; > addChild(clock); > > The Clock would need completely different children if the mode were > "digital" instead of "analog". By delaying the creation of the children > until addChild(), the framework makes it possible to optimize which > children are created. > > - Gordon > > ________________________________ > > From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On > Behalf Of bhaq1972 > Sent: Monday, April 30, 2007 4:57 AM > To: flexcoders@yahoogroups.com > Subject: [flexcoders] creating instances, addChild question > > > > 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 > <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> >