I'd guess that your problem is that somechild2 doesn't exist at the time
your code is executing, because of a feature known as "deferred
instantiation" that minimizes application startup time. You need to ensure
that code populating somechild2 executes after it exists. For example, you
could use the 'creationComplete' handler of somechild2 to populate it. Or
you can force all the children of a ViewStack to be created immediately
using creationPolicy="all".

You can use execute methods on any object from code anywhere, in the same
way as you access properties. But if you want to set property 'foo', just
write foo = 1, don't call setFoo(1). Not all properties have corresponding
setter methods like setFoo(), and those that do will probably lose them in a
future version of Flex. 

- Gordon


-----Original Message-----
From: kredding.geo [mailto:[EMAIL PROTECTED] 
Sent: Friday, March 04, 2005 7:57 AM
To: [email protected]
Subject: [flexcoders] Re: ViewStack change using separate mxml file




This is a great explanation and makes sense. Thank you. I implemented 
the idea in my app; however, the text value in the somechild2 is not 
populating. What do I need to set "text" as in the second child? I 
tried setting it to "", I tried leaving it out, but it won't set when 
I run the app.

Also, if I want to set a variable in the parentDocument based on this 
text value, can I call a setVariable function from the child? The 
script in child1 would like to access a function in the 
parentDocument. Can I call it this way? 

parentDocument.setVariable()

Thanks

--- In [email protected], Gordon Smith <[EMAIL PROTECTED]> wrote:
> Certainly. From any script in a Flex application, you can access
data from
> any component and store it anywhere. You can use "relative"
or "absolute"
> access, as in any hierarchy.
> 
> From a script of the parent document, you can access properties of 
> descendant components by "dotting down" relative to the parent,
using the
> ids of the descendants:
> 
> someChild1.someTextInput.text = someChild2.someTextInput.text;
> 
> This is analogous to a relative path:
> 
> cd a\b
> 
> In a script of the first child you would do
> 
> parentDocument.someChild2.someTextInput.text =
someTextInput.text;
> 
> because these expressions are evaluated with 'this' being
someChild1.
> 
> This is analogous to a relative path which "goes up a level":
> 
> cd ..\a\b
> 
> When you write a <Script> in a component, think of that component
as like
> the "current directory". You can go down or up the hierarchy of
nested
> components from there.
> 
> Note that I said nested components, not nested containers. Flex
does NOT
> make you dot down through every container inside a component. That
would
> make your scripts break every time introduced another container to
affect
> the layout.
> 
> By "absolute" access I mean dotting down from the top of the
hierarchy,
> which is the Application object. In any script you could do
> 
> 
Application.application.someParent.someChild1.someTextInput.text =
> 
Application.application.someParent.someChild2.someTextInput.text;
> 
> This is analogous to
> 
> cd c:\a\b
> 
> I will save explaining the difference between writing
> 
> Application.application
> 
> and just
> 
> application
> 
> for another day. (Hint: They can be different when you have an app
which
> loads another app.)
> 
> - Gordon
> 
> 
> -----Original Message-----
> From: kredding.geo [mailto:[EMAIL PROTECTED]
> Sent: Wednesday, March 02, 2005 6:40 PM
> To: [email protected]
> Subject: [flexcoders] Re: ViewStack change using separate mxml file
> 
> 
> 
> 
> Now I have a parent document with 2 children mxml docs using
> viewStack. I would like to take the value of a textInput from one 
> child and place that value into a text control of the second 
child. 
> Is this possible?
> 
> Thank you
> 
> --- In [email protected], "kredding.geo"
<[EMAIL PROTECTED]> 
> wrote:
> > 
> > Perfect. Thank you.
> > 
> > 
> > --- In [email protected], Gordon Smith <[EMAIL PROTECTED]>
wrote:
> > > Try
> > > 
> > > parentDocument.headerStack.selectedChild = secondCanvas;
> > > 
> > > - Gordon
> > > 
> > > -----Original Message-----
> > > From: kredding.geo [mailto:[EMAIL PROTECTED]
> > > Sent: Wednesday, March 02, 2005 5:13 PM
> > > To: [email protected]
> > > Subject: [flexcoders] ViewStack change using separate mxml file
> > > 
> > > 
> > > 
> > > 
> > > I created a simple mxml applicationthat contains a viewStack.
> The
> > > stack defaults to the first canvas. This canvas contains a
> button
> > > that when pushed, changes the stack to the second canvas.
> > > 
> > > I can get this to work, but what I really want is to put the
> first
> > > canvas into a second mxml file. The problem that happens is now
> > when
> > > the button is pushed it, the action script doesn't understand
the
> > id
> > > of the viewStack. The action script is running on the second
> mxml
> > > file while the viewStack is in the first mxml file.
> > > 
> > > The code is:
> > > function loginButtonPressed() {
> > > headerStack.selectedChild = secondCanvas;
> > > }
> > > 
> > > Flex cannot find headerStack. Is there any way to pass this
> value
> > > back and forth between the two mxml files?
> > > 
> > > Thank you so much,
> > > Kim
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > Yahoo! Groups Links
> 
> 
> 
> 
> 
> 
> Yahoo! Groups Links






Yahoo! Groups Links








Reply via email to