Thanks Gordon,

That explains it, I thought UIComponent extended Container for some
reason. Got it now :)

Cheers


Nick


Gordon Smith wrote:
>
> 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
> > >
> >
>
>  


Reply via email to