Hi folks, I have a custom item renderer (see code attached below) that looks at a data subset and determines whether there exist a URL in it or not. If there does exist a URL, the item renderer sets a new bg color style for itself.
The item renderer is assigned to a list. Issue is when the dataprovider to the list is modified and refresh, seems like the formatting sticks to the same cell but new information is in the cell. Is there a clenup function i should be running on the list or itemrenderers after my dataprovider is refreshed? Thanks, <?xml version="1.0" encoding="utf-8"?> <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" cornerRadius="0" width="375" height="89" borderStyle="solid" backgroundColor="#3E3E3E" borderColor="#000000" creationComplete="{determineURL(data._itemTitle)}"> <mx:Style> .hrRule { border-bottom: dashed 2px #0066cc; } .twBody { font-family: Arial, sans-serif; font-size: 11px; line-height: 18px; } .twSig { font-family: Arial, sans-serif; font-size: 10px; font-style: italic; line-height: 18px; } </mx:Style> <mx:Script> <![CDATA[ private var _msInMinute:Number = 1000 * 60; [Bindable] public var _itemTitle:String; [Bindable] public var _itemInfo:String; [Bindable] public var _itemtimeStamp:String; [Bindable] public var _itemThumb:String; [Bindable] public var _itemAuthor:String; [Bindable] public var _itemID:Number; [Bindable] public var _itemType:String; // Regular Expression private var urlMatch:RegExp = /[^"|^>](http:\/\/+[\S]*)/gi; private var twitPicMatch:RegExp = /[^"|^>](http:\/\/twitpic.com+[\S]*)/gi; public function determineURL(itemTitle:String):void { trace("FIGURING OUT IF ITS A URL"); if (itemTitle.search(urlMatch) >= 0) { //newURL = "URL IS HERE"; this.setStyle("backgroundColor", "0x687B8C"); //this.height = 249; } else if (itemTitle.search(twitPicMatch) >= 0) { //newURL = "URL IS HERE"; this.setStyle("backgroundColor", "0x687EEE"); //this.height = 249; } else { this.setStyle("backgroundColor", "0x3E3E3E"); } /* if (itemTitle.search(urlMatch) >= 0) { //newURL = "URL IS HERE"; this.setStyle("backgroundColor", "0x687B8C"); //this.height = 249; }*/ //itemTitle = itemTitle + " " + newURL; } public function determineHowLong(targetDate:Number, sourceDate:Number):void { trace(">>determineHowLong"); var howLong:String = new String("n/a"); var MSdifference:Number = sourceDate - targetDate; this._itemInfo = determineMinutes(MSdifference) + " minutes ago"; //return howLong; } private function tellTime(epochTime:Number):String { var time:String = ""; var tempDate:Date = new Date(epochTime); time = tempDate.getHours() + ":" + tempDate.getSeconds(); trace(">>tellTime " + time); return time; } private function msgType(type:String):String { var msg:String = ""; switch(type) { case "timeline": msg = "G"; break; case "dm": msg = "D"; break; case "search": msg = "S"; break; } return msg; } private function determineMinutes(miliSecs:Number):Number { trace(">>determineMinutes"); var minuteDiff:Number = 0; minuteDiff = Math.round(miliSecs / _msInMinute); return minuteDiff } ]]> </mx:Script> <!--<mx:Label id="itemTitle_lbl" x="10" y="10" width="350" color="#EDEAEA" text="{itemTitle}" height="46" fontFamily="Arial" fontSize="11" />--> <mx:Text x="40" y="0" width="323" height="57" color="#F3F4F4" fontFamily="Arial" fontSize="11" htmlText="{data._itemTitle}" styleName="twBody" id="itemtit"/> <mx:Text x="40" y="55" width="325" height="18" color="#E3E6E6" fontFamily="Arial" fontSize="10" text="ago by {data._itemAuthor}" textAlign="right"/> <mx:Text x="10" y="13" width="22" id="_typed" text="{msgType(data._itemType)}"/> </mx:Canvas>

