It all depends - if you can get away with it, by all means, use the default creation policy and defer object creation until later. But, I have to say that in any sort of a complex application this invariably leads to problems that are difficult to work around. Sometimes it's just *simpler* to create everything up front and not have to worry whether or not a particular component has yet to be instantiated.
As for your claim "In a complex app, this will seriously degrade the percieved responsiveness of your application.", I have to disagree. At worst creationPolicy='all' will only adversely impact load time. After that the application will actually be more responsive than if you defer the creation of child components. -- Josh Vanderberg - vanderblog.typepad.com --- In [email protected], "Tracy Spratt" <[EMAIL PROTECTED]> wrote: > > Since it hasn't been noted in this thread, using creationPolicy="all" > defeats a very important feature for many Flex components by forcing the > entire application to be rendered before the user can interact with it. > In a complex app, this will seriously degrade the percieved > responsiveness of your application. It might not seem like much at > first, but as the app grows it will. It is an easy fix, but is habit > forming, and will hurt you eventually. > > > > Tracy > > ________________________________ > > From: [email protected] [mailto:[EMAIL PROTECTED] On > Behalf Of Ben Marchbanks > Sent: Monday, November 19, 2007 12:56 PM > To: [email protected] > Subject: Re: [flexcoders] Re: Viewstack problems > > > > I found that using a bound Model component is a great solution to > populating and > updating data displayed on viewstack children. > > You can update the Model and when the viewstack child is visible the > modified > data will be present. > > for example: > > Create a Model > > <mx:Model id="myModel"> > <record> > <FirstName>Homer</FirstName> > </record> > </mx:Model> > > Add a text input to a viewstack child canvas > > <mx:TextInput text="{myModel.FirstName}" /> > > Then modify model using AS > > myModel.FirstName = "Bart" > > You can also bind your Model to an ArrayCollection, XML, or > XMLListCollection > data source to populate it initially. > > <mx:Model id="myModel"> > <record> > <FirstName>{myDataSource.FirstName}</FirstName> > </record> > </mx:Model> > > Ben Marchbanks > > ::: alQemy ::: transforming information into intelligence > http://www.alQemy.com <http://www.alQemy.com> > > ::: magazooms ::: digital magazines > http://www.magazooms.com <http://www.magazooms.com> > > Greenville, SC > 864.284.9918 > > johantrax wrote: > > > > > > First lets explain the problem: > > A viewstack normally doesn't create all it's children, but only the > > visible ones. This has been done in an ateempt to minimize the > > startuptime of your application. > > > > Possible solution: > > 1. Ask yourself if you really need to write data on something that is > > not visible. It's not like someone is going to notice it... > > Try if you could use the initialize/show-events of the child itself to > > do this. > > 2. If you can't delegate the writing, and you do have to write to an > > invisible component. Do as Josh suggested and set the creationPlicy of > > the viewstack and its children to "all". This should let the viewstack > > create it's children, even if they're not visible. > > > > --jeetee > > > > --- In [email protected] > <mailto:flexcoders%40yahoogroups.com> > <mailto:flexcoders%40yahoogroups.com>, > > "Rafael Faria" > > <rafaelfaria.grupos@> wrote: > > > > > > Hello all, > > > > > > I'm having a big trouble with a viewstack. > > > > > > I have this code > > > > > > <mx:ViewStack id="vstack" width="800" height="400"> > > > > > > <mx:Canvas id="step1" label="donor information"> > > > <mx:HBox> > > > <mx:Canvas id="step1_1" width="390" /> > > > <mx:Canvas id="step1_2" width="375" /> > > > </mx:HBox> > > > </mx:Canvas> > > > > > > <mx:Canvas id="step2" label="call status"> > > > <mx:HBox> > > > <mx:Canvas id="step2_1" width="390" /> > > > <mx:Canvas id="step2_2" width="375" /> > > > </mx:HBox> > > > </mx:Canvas> > > > > > > <mx:Canvas id="step3" label="contribution information"> > > > <mx:HBox> > > > <mx:Canvas id="step3_1" width="390" /> > > > <mx:Canvas id="step3_2" width="375" /> > > > </mx:HBox> > > > </mx:Canvas> > > > > > > </mx:ViewStack> > > > > > > and an init actionscript which i'm just trying to trace the elements > > > to see what happens and ends up getting null for some elements that > i > > > need to work with. > > > > > > private function init():void { > > > trace(step1); // return the object > > > trace(step1_1); // return the object > > > trace(step1_2); // return the object > > > trace(step2); // return the object > > > trace(step2_1); // return NULL > > > trace(step2_2); // return NULL > > > trace(step3) // return the object > > > trace(step3_1); // return NULL > > > trace(step3_2); // return NULL > > > } > > > > > > The problem is that i really need to work with the canvas on the > > > initialization. I can write dynamically on the canvas (step2 and > > > step3) but weirdly i can't get the objects inside them. > > > > > > Any guru to help me out with that?! > > > > > > Raf > > > > > > > > > -- > Ben Marchbanks > > ::: alQemy ::: transforming information into intelligence > http://www.alQemy.com <http://www.alQemy.com> > > ::: magazooms ::: digital magazines > http://www.magazooms.com <http://www.magazooms.com> > > Greenville, SC > 864.284.9918 >

