Setting the itemRenderer property doesn't actually add a renderer to
List (or whatever) at that moment. It simply tells the List, "when you
need to make item renderers, use this IFactory to make the renderer
instances". The List is in charge of creating item renderers, not you.

 

If you really need to cause properties to be set on the item renderers
(as opposed to conveying those properties through the data items in the
data provider), then set the itemRenderer to a ClassFactory instance on
which you've specified a 'properties' Object. The name/value pairs in
the 'properties' Object will get set on each renderer when it is
created.

 

Gordon Smith

Adobe Flex SDK Team 

 

________________________________

From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On
Behalf Of markgoldin_2000
Sent: Wednesday, April 23, 2008 5:28 AM
To: flexcoders@yahoogroups.com
Subject: [flexcoders] Re: passing parameters to components

 

Speaking about Communicating between Components. In reality 
everything is custom, specifically custom renderers. What I have been 
having problem with is to how to populate properties of a custom 
component and how to execute its methods before the component is 
added to a parent container, another words before this:
Column.itemRenderer = customRenderer;

--- In flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com>
, "Tracy Spratt" <[EMAIL PROTECTED]> wrote:
>
> There are many ways. Below is a document I started, but have not
> polished, but should be of some use.
> 
> Tracy
> 
> 
> 
> Communicating between Components:
> 
> 
> 
> Note: for "loose coupling" use events. But that is another topic.
> 
> 
> 
> A non-trivial flex application is "component" based. While all of 
the
> built-in controls are components, the question of communicating 
between
> components most often arises when you are using a custom component. 
A
> custom component, whether implemented in mxml or ActionScript, has 
its
> own "scope". Within that component (Application is a component 
too!),
> all sibling child controls share the same scope, so you can refer to
> controls by their id. If the controls(components) have public
> properties or methods, you can reference those members directly 
through
> the id:
> 
> <mx:TextInput id="textinput1" text="test value" .../>
> 
> <mx:Text id="text1" ... text="{textinput1.text}" .../>
> 
> 
> 
> Ok, so far, its a "duh" right?
> 
> 
> 
> When you use custom components in a Flex app, at run time they make 
a
> document object model hierarchy (DOM). Each subcomponent has its 
own
> scope and code within that component can't *directly* reference the
> member properties or methods of its sibling subcomponents.
> 
> 
> 
> So again, within a component, code can reference children 
directly, as
> in the example above. But there are two other cases inherent in a
> hierarchy. You might want to reference "up", to get to public 
members
> of the parent, grandparent, etc, or 'down", to get to 
a "grandchild".
> 
> 
> 
> Accessing members in the parent:
> 
> On an ordinary component DOM, you can reference the parent component
> using the .parent property. Say that a control with id="textinput1"
> exists in the parent of the current component. then you could do:
> 
> <mx:Text id="text1" ... text="{parent.textinput1.text}"
> .../>
> 
> 
> 
> Accessing members in the main application:
> 
> Components can be nested, sometimes very deeply. If the reference 
you
> want is all the way at the top-level, main application (the one 
with the
> <mx:Application> tag), you could do
> {parent.parent.parent.textinput1.text}, but you would have to count 
the
> component levels just right. Instead, you can use
> Application.application to get to that scope:
> 
> <mx:Text id="text1" ...
> text="{Application.application.textinput1.text}" .../>
> 
> You can shoretn this style of reference by importing
> mx.core.Application, and assigning Application.application to a
> variable, like _app, the doing (_app.textinput1.text)
> 
> 
> 
> Accessing components of a child component ("grandchildren"):
> 
> Say that in this case, a child component has the TextInput control 
you
> want to reference. First, make sure the child component has an id:
> 
> <myComp:MyCustomComp id="mycc1" .../>
> 
> Then, in the same scope (the same component/file that 
contains "mycc1"
> above) you can say:
> 
> <mx:Text id="text1" ... 
text="{mycc1.textinput1.text}" .../>
> 
> 
> 
> Accessing a nested component:
> 
> As mentioned above you can go "up" the hierarchy using
> "parent.parent...". You can also go "down" the hirearchy using id
> references:
> 
> <mx:Text id="text1" ...
> text="{mycc1.mycc11.mycc.12.textinput1.text}" .../>
> 
> 
> 
> Additional notes:
> 
> If you are using SWFLoader to load an entire Application, you can
> reference the immediate parent application using "parentDocument". 
You
> can also use Application.application to reach the main app, as shown
> above.
> 
> 
> 
> Accessing members of an application loaded by SWFLoader is a bit 
more
> complicated. See the example here:
> 
> http://www.cflex.net/showFileDetails.cfm?ObjectID=690
<http://www.cflex.net/showFileDetails.cfm?ObjectID=690> 
> 
> 
> 
> 
> 
> ________________________________
> 
> From: flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com>

[mailto:flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com>
] On
> Behalf Of Luke Vanderfluit
> Sent: Tuesday, April 22, 2008 7:08 PM
> To: flexcoders@yahoogroups.com <mailto:flexcoders%40yahoogroups.com> 
> Subject: [flexcoders] passing parameters to components
> 
> 
> 
> Hi.
> 
> I have a flex application that gets called from an html link and is
> passed a 
> parameter. The param is personid.
> 
> I retrieve the parameter in the flex application (BrowserManager).
> So I have access to it in the main application file.
> 
> I have a number of components within the main application, that do
> server 
> requests. In some of those requests I need to pass the personid 
(that I
> have 
> retrieved from the browser url).
> 
> My question is:
> 
> What is the accepted method of passing variables (params) between
> components, 
> specifically, in this case, from parent to child component?
> 
> Thanks for your responses.
> 
> Kind regards.
> Luke.
> 
> -- 
> Luke Vanderfluit
> Analyst / Web Programmer
> e3Learning.com.au
> 08 8221 6422
>

 

Reply via email to