« Return to Thread: item renderer in ComboBox not consistent

Re: item renderer in ComboBox not consistent

by valdhor-3 :: Rate this Message:

Reply to Author | View in Thread

Try the following as a starting point...

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute">
     <mx:ComboBox itemRenderer="MyLabel">
         <mx:dataProvider>
              <mx:String>*United States</mx:String>
              <mx:String>Australia</mx:String>
              <mx:String>England</mx:String>
              <mx:String>*Ireland</mx:String>
              <mx:String>*Scotland</mx:String>
              <mx:String>Wales</mx:String>
         </mx:dataProvider>
     </mx:ComboBox>
</mx:Application>

MyLabel.as:
package
{
     import flash.display.Graphics;
     import mx.controls.Label;

     public class MyLabel extends Label
     {
         public function MyLabel()
         {
             super();
         }

         override public function set data(value:Object):void
         {
             if(value != null)
             {
                 super.data = value;
                 text = value as String;
             }
         }

         override protected function
updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
         {
             super.updateDisplayList(unscaledWidth, unscaledHeight);
             var g:Graphics = graphics;
             g.clear();
             if(text.substr(0,1) == "*")
             {
                 g.beginFill(0xE8E8E3);
             }
             else
             {
                 g.beginFill(0xFFFFFF);
             }
             g.drawRect(-2, -2, unscaledWidth + 4, unscaledHeight + 4);
             g.endFill();
         }
     }
}




--- In flexcoders@..., "Mic" <chigwell23@...> wrote:
>
> I thought this might work --- fine until I start scrolling when it
gets totally out of wack. The trace does fire occasionally while
scrolling but not consistently. Appreciate some hints. TIA,
>
> Mic.
>
> <?xml version="1.0" encoding="utf-8"?>
> <mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml"
horizontalScrollPolicy="off">

>  <mx:Script>
>   <![CDATA[
>     private function labelComplete():void{
>       trace("Here");
>       if(label1.text.substr(0,1) == "*"){
>                  this.setStyle("backgroundColor", 0xe8e8e3);
>     }else{
>                  this.setStyle("backgroundColor", 0xFFFFFF);
>     }
>     }
>   ]]>
>  </mx:Script>
>         <mx:Label id="label1" text="{data.cmplx_nm}"  
creationComplete="labelComplete()"  />
> </mx:VBox>
>

 « Return to Thread: item renderer in ComboBox not consistent