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