Not always a purist, I'd say that if it works, cool. Adding un- necessary event listeners can sometimes effect application performance though. Another .02.
-TH --- In [email protected], "Kenny" <[EMAIL PROTECTED]> wrote: > > Thanks Tim. That's the code I'd seen before. (but was too lazy to go > look for <g>) > > Here's how I accomplished it. A bit different, but it works. Any > comments on this would be appreciated. > > Kenny > > CODE > ====================== > > public function init():void { > addEventListener("dataChange", handleDataChanged); > } > > private function handleDataChanged(event:Event):void > { > if (data.fn == 'Live') > { > theButton.visible = false; > } > else > { > theButton.visible = true; > } > } > > > > > > > --- In [email protected], "Tim Hoff" <TimHoff@> wrote: > > > > > > Hi Kenny, > > > > Just for a little more background info that others may find beneficial. > > You can think of the data object as a single record (or row) in the > > DataGrid's dataProvider (dataset). Every column's itemRenderer in a > > DataGrid has access to all of the fields in the record (data object); > > regardless of the dataField that is set. However, since itemRenderers > > are recycled, you have to perform any conditional logic in the > > itemRenderer's set data function. This ensures that when the data is > > changed, that the itemRenderer will be refreshed with the appropriate > > state. Inside the RollOverButton itemRenderer, you'll have to override > > the set data method in script: > > > > override public function set data(value:Object):void > > { > > super.data = value; > > > > > > > > if (data != null) > > { > > this.visible = (data.fn == "showMe" ? true : false); > > } > > > > super.invalidateDisplayList(); > > > > } > > > > Hope that this helps. > > > > Cheers, > > -TH > > > > --- In [email protected], "Kenny" <kennysphone@> wrote: > > > > > > I figured it out!! > > > > > > Thanks again for the help. :o) > > > > > > Kenny > > > > > > > > > --- In [email protected], "Kenny" kennysphone@ wrote: > > > > > > > > Oh! Now see, I knew it would be something simple. :o) > > > > > > > > Ok, so that helped me with another problem I was having elsewhere > > too, > > > > so double thanks for that one! > > > > > > > > I have read about the render handlers not keeping state, but I'm not > > > > sure how to handle this situation. How can I set it for each case, > > as > > > > you've instructed? I'm sure I've seen it somewhere before, but > > > > honestly, it's quicker for me to ask here than to go look around the > > > > web for it. ;o) > > > > > > > > Thanks again! > > > > > > > > Kenny > > > > > > > > --- In [email protected], "Tracy Spratt" <tspratt@> wrote: > > > > > > > > > > Should be data.fn; > > > > > > > > > > > > > > > > > > > > Note, you must set this for every case, ie, always set the > > > visibility on > > > > > data change. Renderers are recycled and will not keep any state. > > > > > > > > > > > > > > > > > > > > Tracy > > > > > > > > > > > > > > > > > > > > ________________________________ > > > > > > > > > > From: [email protected] > > > [mailto:[EMAIL PROTECTED] On > > > > > Behalf Of Kenny > > > > > Sent: Friday, May 23, 2008 11:24 AM > > > > > To: [email protected] > > > > > Subject: [flexcoders] Question regarding DataGrid > > > > > > > > > > > > > > > > > > > > Hello. > > > > > > > > > > In the following code, I would like to be able to reference the > > data > > > > > field called "fn" from within the item renderer for the last > > column, > > > > > which contains the RollOverButton. > > > > > > > > > > Can someone tell me how I can do this? > > > > > > > > > > What I want to do is have the button be visible in some cases, but > > not > > > > > others. > > > > > > > > > > Thanks! > > > > > > > > > > Kenny > > > > > > > > > > CODE BELOW > > > > > ================================== > > > > > > > > > > <mx:DataGrid id="dgMediaHistory" > > > > > x="27" > > > > > y="59" > > > > > width="380" > > > > > height="339" > > > > > > > dataProvider="{svcGetMediaHistory.lastResult.dataset.mediahistory}" > > > > > resizableColumns="false" > > > > > allowMultipleSelection="false" > > > > > allowDragSelection="false" > > > > > draggableColumns="false" > > > > > change="historyChangeHandler()"> > > > > > <mx:columns> > > > > > <mx:DataGridColumn headerText="Msg" dataField="fn" width="85"/> > > > > > <mx:DataGridColumn headerText="Date" dataField="whenplayed" > > > > > width="140"/> > > > > > <mx:DataGridColumn headerText="" width="30"> > > > > > <mx:itemRenderer> > > > > > <mx:Component> > > > > > <comp:RollOverButton width="20" height="20" > > > > > upImage="{outerDocument.playImageUp}" > > > > > overImage="{outerDocument.playImageOver}" > > > > > downImage="{outerDocument.playImageDown}" > > > > > click="outerDocument.playMedia()"/> > > > > > </mx:Component> > > > > > </mx:itemRenderer> > > > > > </mx:DataGridColumn> > > > > > </mx:columns> > > > > > </mx:DataGrid> > > > > > > > > > > > > > > >

