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); > > > } > > > > > >

