Honestly, using LSO for this is nuts. If I am understanding fully.
Say the value you want is a record id, and you can select it in a
datagrid or list component in the main app, and need to pass it into the
component.
In your component, create a public property. You can implement it as a
public var or with a setter function. If you want the change of the
value to initiate some action, like call a data service, use a setter.
When you instantiate the component, pass in the value you want using
binding:
<myCodeBehindCanvasMainApp .....
...
<mx:Script...
[Bindable]var _sRecordId:String;
private function onSelectRecord(oEvent:Event)...
_sRecordId = oEvent.target.selectItem.ID;
...
<myCodeBehindCanvasCOMPONENT recordId="{_sRecordId }"
...
In myCodeBehindCanvasCOMPONENT:
...
/** Setter function */
public function set recordId(s:String):void {
myDataService.send({recid:s})
...
Tracy
________________________________
From: [email protected] [mailto:[EMAIL PROTECTED] On
Behalf Of stlum9495
Sent: Friday, October 05, 2007 7:46 PM
To: [email protected]
Subject: [flexcoders] Re: Passing ID from master to detail
Hi Tracy,
Thanks for replying.
Yes, my mxml are in different files. I should prob have said this
earlier -- my canvases are done using the code behind pattern, so I
have a mxml for each canvas, and behind it is an .as that extends
Canvas.
Perhaps I should have specified more. For this example, say there is
a datagrid with a bunch of user information. when you click on a row
/ user, a new canvas is selected in the viewstack w/ more user
detailed information.
Like I said, currently I'm using a Local Shared Obj...what is your
recommended way?
Thanks
--- In [email protected] <mailto:flexcoders%40yahoogroups.com>
, "Tracy Spratt" <[EMAIL PROTECTED]> wrote:
>
> There are much simpler ways.
>
>
>
> If your two canvases are in the same mxml file(class) then they share
> the the same scope and you can bind or access values directly. If they
> are implemented in different mxml files, then it is a tiny bit more
> complicated.
>
>
>
> Same scope
>
> Declare an id in any mx tag you want to be able to access. Then you
can
> access values by doing something like this:
>
> in AS:
>
> myText1.text = myText2.text;
>
> myText1.text = myComboBox.selectedItem.myProperty
>
>
>
> Binding In mxml:
>
> <mx:Text text="{myText2.text}" ...
>
> <mx:Text text="{myComboBox.selectedItem.myProperty}" ...
>
>
>
> If myText1 and myText2 are in different scope(different mxml files),
> post, and I will explain how to do that.
>
>
>
> Tracy
>
>
>
>
>
> ________________________________
>
> From: [email protected] <mailto:flexcoders%40yahoogroups.com>
[mailto:[email protected] <mailto:flexcoders%40yahoogroups.com>
] On
> Behalf Of stlum9495
> Sent: Friday, October 05, 2007 10:21 AM
> To: [email protected] <mailto:flexcoders%40yahoogroups.com>
> Subject: [flexcoders] Passing ID from master to detail
>
>
>
> Hi,
>
> I've been programming for awhile, but am new to Flex and was wondering
> what the best way of passing values from screen to screen is.
>
> Currently, I have two canvases which have a master detail
> relationship. When I click on a button in the master canvas, I want
> to pass the record id to the detail canvas so that the detail canvas
> can query the server for the details data. simple master detail.
>
> To code this in flex, what I did was when the button was clicked on
> the master, I saved the record id into a Local Shared Object, and when
> my Detail canvas appears, I grab the id from said Local Shared Object
> and make my server side request.
>
> This works fine, but I was wondering -- is this the Best Practice way?
> I haven't seen much by way of design patterns etc for flex
> pages(I've seen the AS book) so was wondering if I should be doing
> this differently.
>
> Thanks
>