Anyone have any ideas?  I'm still stumped on this...

My question still boil down to:
1) How can I make the component create its children?
2) What event can I listen to in order to know when this has completed?

--- In [email protected], "dfalling" <dfall...@...> wrote:
>
> Here's a sample app with the sliding viewstack.  The problems in this example 
> are a) I'm failing to make the new view create itself, b) I don't know what 
> to listen to in the event that I succeed with a).
> 
> Thanks.
> 
> http://flexninja.com/examples/slidingViewstack/
> 
> --- In [email protected], Alex Harui <aharui@> wrote:
> >
> > The code for a SHOW event runs before things are drawn to the screen.  
> > Sound like something is causing an extra invalidation of the children so 
> > they aren't ready right away.  Can you make a simple test case?
> > 
> > Alex Harui
> > Flex SDK Developer
> > Adobe Systems Inc.<http://www.adobe.com/>
> > Blog: http://blogs.adobe.com/aharui
> > 
> > From: [email protected] [mailto:[email protected]] On 
> > Behalf Of dfalling
> > Sent: Friday, September 18, 2009 2:28 PM
> > To: [email protected]
> > Subject: [flexcoders] Re: Still struggling with creation complete
> > 
> > 
> > 
> > I'm not sure how SHOW would help me as I want to make everything happen 
> > before rendering the child.
> > 
> > As an experiment, I made the child createComponentsFromDescriptors and 
> > called validateNow() at the viewstack level. I also replaced the event 
> > listener with a timer since I have no idea what event to watch.
> > 
> > All my attempts to make the child render itself aren't working- even if the 
> > timer waits for several seconds to allow an empty view to render, it still 
> > won't show up until after sliding in. Even once I get this working, I still 
> > won't know what event to listen for to know when the child's children are 
> > created. There's the lovely childrenCreationComplete event, but that's only 
> > dispatched for creation types of none and queued.
> > 
> > Here's my current code:
> > 
> > override public function set selectedIndex(value:int):void
> > {
> > _lastIndex = selectedIndex;
> > 
> > if(value != _newIndex && value != _lastIndex && value >= 0 && _lastIndex >= 
> > 0)
> > {
> > _newIndex = value;
> > var targetChild:Container = getChildAt(value) as Container;
> > if (targetChild.mx_internal::numChildrenCreated < 0)
> > {
> > targetChild.createComponentsFromDescriptors(true);
> > validateNow();
> > _creationTimer = new Timer(3000,1);
> > _creationTimer.addEventListener(TimerEvent.TIMER,child_creation,false,0,true);
> > _creationTimer.start();
> > return;
> > }
> > else
> > {
> > slideTabs(_lastIndex,_newIndex);
> > }
> > }
> > }
> > 
> > private function child_creation(event:Event):void
> > {
> > slideTabs(_lastIndex,_newIndex);
> > }
> > 
> > --- In [email protected]<mailto:flexcoders%40yahoogroups.com>, 
> > Alex Harui <aharui@> wrote:
> > >
> > > I still believe that all children of a viewstack are created no matter 
> > > the creationpolicy. CreationPolicy affects the grandchildren. 
> > > CreationComplete on the child is long gone. Try listening to SHOW as 
> > > well, and call validateNow on the entire viewstack, not just the child. 
> > > Children get their size from the parent.
> > >
> > > Alex Harui
> > > Flex SDK Developer
> > > Adobe Systems Inc.<http://www.adobe.com/>
> > > Blog: http://blogs.adobe.com/aharui
> > >
> > > From: [email protected]<mailto:flexcoders%40yahoogroups.com> 
> > > [mailto:[email protected]<mailto:flexcoders%40yahoogroups.com>] 
> > > On Behalf Of dfalling
> > > Sent: Friday, September 18, 2009 12:09 PM
> > > To: [email protected]<mailto:flexcoders%40yahoogroups.com>
> > > Subject: [flexcoders] Still struggling with creation complete
> > >
> > >
> > >
> > > I have a viewstack that animates its children by sliding them in and out. 
> > > It works fine when the creationPolicy is set to all, but when it's set to 
> > > auto, uncreated views slide in blank, then render themselves.
> > >
> > > I thought that I could fix this by checking to see if a view has been 
> > > created yet (the only way I could figure out how to do this is 
> > > mx_internal::numChildrenCreated), and then trigger its creation with 
> > > createComponentFromDescriptor. For some reason this isn't working though- 
> > > my creationComplete function is never called...what am I doing wrong?
> > >
> > > override public function set selectedIndex(value:int):void
> > > {
> > > _lastIndex = selectedIndex;
> > >
> > > if(value != _lastIndex && value >= 0 && _lastIndex >= 0)
> > > {
> > > _newIndex = value;
> > > var targetChild:Container = getChildAt(value) as Container;
> > > if (targetChild.mx_internal::numChildrenCreated < 0)
> > > {
> > > targetChild.addEventListener(FlexEvent.CREATION_COMPLETE,child_creation,false,0,true);
> > > createComponentFromDescriptor(targetChild.descriptor,true);
> > > targetChild.validateNow();
> > > return;
> > > }
> > > else
> > > {
> > > slideTabs(_lastIndex,_newIndex);
> > > }
> > > }
> > > }
> > >
> > > private function child_creation(event:Event):void
> > > {
> > > slideTabs(_lastIndex,_newIndex);
> > > }
> > >
> >
>


Reply via email to