I'd be careful about using "render" it can get called often.  Always
assume that data could be null.

 

-Alex

 

________________________________

From: [email protected] [mailto:[EMAIL PROTECTED] On
Behalf Of Aaron Wright
Sent: Friday, June 01, 2007 8:41 AM
To: [email protected]
Subject: [flexcoders] Re: [SOLVED] itemRenderer null object error

 

Maybe I've a little naive but I like making nearly everything in
actionscript 3, especially itemRenderers. Then, you can handle all the
positioning and styles in the updateDisplayList function if you want.
This generally follows the Adobe approach to it as well. I say start
with looking over Adobe code for itemRenderers, and see where you need
to add your code to make it do what you want.

In the end you avoid listening for events, and not knowing what event
is going to fire in what occasion.

--- In [email protected] <mailto:flexcoders%40yahoogroups.com>
, Ben Marchbanks <[EMAIL PROTECTED]> wrote:
>
> After experimenting I found the solution was to change the event
trigger from 
> "initialize" to "render".
> 
> Happy to have resolved the problem but still puzzled why
"initialize" worked for 
> one itemRenderer and not the other since from all appearances the 
> implementations are identical ???
> 
> 
> 
> pdflibpilot wrote:
> > I am so happy I was able to create an itemRenderer with an
initialize
> > event that dynamically set the style for each item based on the
source
> > data. This worked flawlessly for one HorizontalList ( List A) so I
> > tried to implement the same on a TileList (List B) on the same
layout.
> > They have virtually the same dataProvider - List B items are
> > originally drag/dropped to List A.
> > 
> > These list are nearly identical in every way yet when the event
fires
> > for the itemRenderer in List B it fails with "null object" error. It
> > seems that the data is not available when the event dispatches. I am
> > at a loss as to why it works for one list and not the other. The
data
> > used by the event is not null when it renders since all the items
> > (data) are accounted for.
> > 
> > here my itemRenderer code that works - 
> > 
> > <?xml version="1.0" encoding="utf-8"?>
> > <!-- itemRenderers\navScreenRender.mxml -->
> > 
> > <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml
<http://www.adobe.com/2006/mxml> " 
> > width="200" 
> > height="200"
> > horizontalScrollPolicy="off"
> > verticalScrollPolicy="off"
> > borderStyle="solid" backgroundImage="assets/images/{data.imageID}"
> > alpha="1.0" backgroundAlpha="1.0" borderColor="#333333">
> > 
> > <mx:Script>
> > <![CDATA[
> > 
> > private function setContentButton(event:Event,V):void{
> > var e = event.currentTarget
> > if(V==''){
> > e.styleName = 'customcontentbuttonOff'
> > e.alpha = 1.0
> > e.toolTip = "Content Editor is not enabled for this screen - click
> > to complete the setup"
> > }
> > else if(V!="(preset)"){
> > e.styleName = 'customcontentbuttonOn'
> > e.alpha = 1.0
> > e.toolTip = "Content Editor is enabled for this screen - click to
> > change the setup"
> > }
> > else if(V=="(preset)"){
> > e.alpha = 0.0
> > }
> > }
> > ]]>
> > 
> > </mx:Script>
> > <mx:Text id="layoutLabel" text = "{data.label}"
> > fontSize="8"
> > color="#ffffff"
> > textAlign="center"
> > letterSpacing="0"
> > horizontalCenter="0" verticalCenter="-38"/>
> > <mx:Image source = "assets/images/{data.imageID}" 
> > toolTip="{data.description}"
> > scaleContent="false" alpha="1" 
> > visible="false"/>
> > <mx:Button label="{data.displaySeq-0+1}" width="25" height="20"
> > cornerRadius="12" styleName="adminbutton" fontWeight="bold"
> > fontSize="9" verticalCenter="20" horizontalCenter="0"/>
> > <mx:Button id="contentButton"
> > initialize="{setContentButton(event,data.contentLocation)}" 
> > label="C" width="18" height="18" 
> > cornerRadius="12" 
> > styleName="customcontentbuttonOff" 
> > fontWeight="bold" fontSize="10" 
> > verticalCenter="-1" horizontalCenter="0" 
> > alpha="1.0"/>
> > 
> > </mx:Canvas>
> > 
> > 
> 
> -- 
> Ben Marchbanks
> 
> ::: alQemy ::: transforming information into intelligence
> http://www.alQemy.com <http://www.alQemy.com> 
> 
> ::: magazooms ::: digital magazines
> http://www.magazooms.com <http://www.magazooms.com> 
> 
> Greenville, SC
> 864.284.9918
>

 

Reply via email to