Sorry, I don't understand your question. Each child of a ViewStack can be any kind of Container. (A Container is a UIComponent, but a UIComponent is not a Container.)
So you can write MXML like <ViewStack> <Form> <FormItem> <TextInput/> <Button/> </FormItem> ... </Form> <Canvas> <List/> <Button> ... </Canvas> </ViewStack> or you can turn each child into a component like this <ViewStack> <MyForm> <MyCanvasr> </ViewStack> where MyForm.mxml looks like <Form> <FormItem> <TextInput/> <Button/> </FormItem> .... </Form> (and therefore defines a subclass of Form) and MyCanvas.mxml looks like <Canvas> <List/> <Button/> ... </Canvas> (and therefore defines a subclass of Canvas. Since components like Form and Canvas are already containers, there is no need to "wrap" them in some kind of outer container before you put them in a ViewStack. Gordon Smith Adobe Flex SDK Team ________________________________ From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On Behalf Of nickgerig Sent: Thursday, April 17, 2008 2:03 AM To: flexcoders@yahoogroups.com Subject: [flexcoders] Re: Flex Compenents, how to make them talk Hi Gordon, I've been using Canvas with ViewStack too. The reason is that I don't know of a lower level alternative that extends Container. I would have thought UIComponent was a good option as it does have Container as a sub-class but I get type coercion error failed to convert to mx.core.containers. What is a good container to extend? Cheers Nick --- In flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> , "Gordon Smith" <[EMAIL PROTECTED]> wrote: > > By the way, why are you wrapping your <Login> and <Register> components > inside <Canvas>es to put them into the <ViewStack>? This probably isn't > necessary. The children of a ViewStack must be some kind of Container, > and I'm guessing that Login and Register are subclasses of Container. > > > > Gordon Smith > > Adobe Flex SDK Team > > > > ________________________________ > > From: flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> [mailto:flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> ] On > Behalf Of Gordon Smith > Sent: Wednesday, April 16, 2008 2:43 PM > To: flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> > Subject: RE: [flexcoders] Re: Flex Compenents, how to make them talk > > > > A click handler in Login's <Script> could do > > > > Application.application.vsApp.selectedChild = > Application.application.vsRegister; > > > > but it wouldn't be good practice because it means that Login has too > much knowledge about Application. If you don't want to use events, put > > > > public function showRegister() > > { > > vsApp.selectedChild = vsRegister; > > } > > > > in Application's <Script> and have your click handler in Login's > <Script> call it: > > > > Application.application.showRegister(); > > > > or > > > > parentDocument.showRegister(); > > > > That way, Login asks Application to do something without telling it how > to do it. > > > > Gordon Smith > > Adobe Flex SDK Team > > > > ________________________________ > > From: flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> [mailto:flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> ] On > Behalf Of timgerr > Sent: Wednesday, April 16, 2008 2:23 PM > To: flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> > Subject: [flexcoders] Re: Flex Compenents, how to make them talk > > > > Lets say I have a Flex Component called test1.mxml and that > component has a view stack. I then create another component called > test2.mxml and I want to reference the view stack in test1.mxml, can > I do that? > > The problem is I want to change states so I have a component that is > register.mxml and another one that says login.mxml. So here I have > a veiwStack on the main application for > > <Application xmlns:log="com.login.*" mxlns:reg="com.register.*"> > <mx:ViewStack id="vsApp" width="100%" height="100%"> > > <mx:Canvas label="vsScreenLogin" id="vsScreenLogin"> > <log:Login x="302" y="138"/> > </mx:Canvas> > > <mx:Canvas label="vsRegister" id="vsRegister"> > <reg:Register/> > </mx:Canvas> > > </mx:ViewStack> > > </Application> > > OK, so in the login.mxml I have a button that says register and when > that is clicked I want to run this to change the state: > vsApp.selectedChild=vsScreenLogin. I am unable to run this command > from Login.mxml because login.mxml dosnt know about the main app. > How can I pass information from a Flex component to the main > application???? > > Thanks for the help, > timgerr > > --- In flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> <mailto:flexcoders% 40yahoogroups.com> > , "Gordon Smith" <gosmith@> > wrote: > > > > If you have > > > > > > > > <Application> > > > > <MyContainer id="myContainer"> > > > > <MyControl id="myControl"/> > > > > </myContainer> > > > > </Application> > > > > > > > > then in the Application's <Script> you can simply refer to the > > MyContainer instance as myContainer and to the MyControl instance > as > > myControl (NOT myContainer.myControl). > > > > > > > > In MyContainer's <Script> you can refer to the Application > instance as > > parentDocument or as Application.application. > > > > > > > > In MyControls' <Script> you can refer to to the MyContainer > instance as > > parentDocument and to the Application instance as > > parentDocument.parentDocument or as Application.application. > > > > > > > > In general, you can access anything from anywhere. > > > > > > > > Gordon Smith > > > > Adobe Flex SDK Team > > > > > > > > ________________________________ > > > > From: flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> <mailto:flexcoders% 40yahoogroups.com> > > [mailto:flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> <mailto:flexcoders% 40yahoogroups.com> > ] On > > Behalf Of timgerr > > Sent: Tuesday, April 15, 2008 8:20 PM > > To: flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> <mailto:flexcoders% 40yahoogroups.com> > > Subject: [flexcoders] Flex Compenents, how to make them talk > > > > > > > > I was wondering if I create a Flex Application and have 5 Flex > > components that integrate within my Flex App, how can they all > talk to > > each other???? Since they do not know about each other till the swf > > file is compiled, I am unable to have one component event trigger > > something on another component because they dont know about each > other. > > > > Thanks for the help, > > > > Timgerr > > >