Salutations, I have found out the culprit. So first here is the code of the renderer :
<?xml version="1.0" encoding="utf-8"?> <mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" styleName="myStyle1" verticalScrollPolicy="off" implements="mx.managers.IFocusManagerComponent" toolTip="{data.uid}" creationComplete="SentenceRendererCreationCompleteEventHandler()"> <mx:states> <mx:State name="BeingPlayed"> <mx:SetStyle target="{txtSentence}" name="color" value="#ff0000"/> </mx:State> <mx:State name="Selected"> <mx:SetProperty target="{txtSentence}" name="condenseWhite" value="false"/> <mx:SetEventHandler name="currentStateChange"> <mx:handler>SentenceRendererSelectedCurrentStateChangeEventHandler()</mx:handler> </mx:SetEventHandler> </mx:State> <mx:State name="HasBeenPlayed"> <mx:SetStyle target="{txtSentence}" name="color" value="#808080"/> <mx:SetStyle name="themeColor"/> </mx:State> </mx:states> <mx:Style source="Ressources/Librairie/USlicFont.css"/> <mx:TextArea id="txtSentence" wordWrap="true" width="90%" borderStyle="none" text="{data.Text}" textIndent="25" styleName="myStyle1" textDecoration="none" selectable="false" verticalScrollPolicy="off" minHeight="60"> </mx:TextArea> <mx:Button id="btnSentence" width="25" label="S{data.indexNo}" height="15" color="#ffffff"> <mx:downSkin>@Embed('Ressources/Librairie/History/Btn_S_D.swf')</mx:downSkin> <mx:overSkin>@Embed('Ressources/Librairie/History/Btn_S_U.swf')</mx:overSkin> <mx:upSkin>@Embed('Ressources/Librairie/History/Btn_S_U.swf')</mx:upSkin> </mx:Button> <mx:Script> <![CDATA[ import text.Highlighter; private var _Highlighter:Highlighter; private var _strDefaultState:String = "non"; override public function set data(value:Object):void { super.data = value; if(this.currentState == "Selected") { _Highlighter.reset(); _Highlighter.highlightText(); } } public function BeingPlayed():void { //Change the text color _strDefaultState = currentState; _Highlighter.reset(); this.currentState = "BeingPlayed"; } public function HasBeenPlayed():void { //Change the text color _Highlighter.reset(); this.currentState = "HasBeenPlayed"; } public function HasBeenSelected():void { this.currentState = "Selected"; } public function ResetRenderer():void { if(_strDefaultState != "non") { _Highlighter.reset(); currentState=_strDefaultState; _strDefaultState = "non"; } } public function BackToDefault():void { _Highlighter.reset(); currentState = ""; } private function getTextField(component:TextArea):TextField{ var len:int = component.numChildren; var r:TextField = new TextField(); for(var i:int=0; i<len; i++){ var thisChild:DisplayObject = component.getChildAt(i); if(thisChild is TextField){ var textChild:TextField = thisChild as TextField; r = textChild; } } return r; } private function SentenceRendererSelectedCurrentStateChangeEventHandler():void { _Highlighter.highlightText(); } private function SentenceRendererCreationCompleteEventHandler():void { _Highlighter = new Highlighter(getTextField(txtSentence),0xfffcee21); } ]]> </mx:Script> </mx:Canvas> The problem resides in the sub components Highlighter. This component draws a rectangle in the back of the text. (This is someone else's lib that I modified a bit) Anyway if I don't refer to this sub class at all then my application works fine. I believe I have to implements some Interface from Flex so that I can use this sub class in my Renderer... Thanx for the help --- In [email protected], "Alex Harui" <[EMAIL PROTECTED]> wrote: > > The UID's in the data, not the renderer matter. Renderers definitely > get recycled so you can't store anything about selection in the renderer > and have to use isItemSelected to update it during updateDisplayList. > > > > If you want to post a mini-example, we can take a look. > > > > ________________________________ > > From: [email protected] [mailto:[EMAIL PROTECTED] On > Behalf Of icepaco33 > Sent: Sunday, November 11, 2007 4:04 PM > To: [email protected] > Subject: [flexcoders] Re: Can't select an item renderer in a list > > > > No I do not have the same problem if I use the default renderer. > I checked the UIDs in the following manner : > > - Manually changing the UID of each renderer to make sure they are > unique > > - Using debug mode and monitoring the UID : they are different. > > In both cases tho the behavior of this bug is exactly the same : > > Behavior of the list during a drag and drop is to create 2 new renderer: > > 1 that represent the item being dragged which will never make it to > the list. (So that new item doesn't cause the bug) > 1 that will take the place of the item that you dragged but will > contain the info of the item next to it. > > That last item for whatever reason will be considerer by the list's > selection model as the last item in the list. > > So while you can still see the other items in the list you can no > longer rollover / select them. > > If I repopulate the list by changing the list's dataProvider then for > some reason the list will use the renderer's already there but in > reverse order. That means that the first item is selectable but none > of the following items will be.(Unless the new list is longer than the > old one which means that all the new items which will require new > renderers will then be selectable) > > Hope this help clarify ! > > --- In [email protected] <mailto:flexcoders%40yahoogroups.com> > , "Alex Harui" <aharui@> wrote: > > > > Double check the UIDs. Try using the default renderer and see if you > > still have the problem. > > > > > > > > ________________________________ > > > > From: [email protected] <mailto:flexcoders%40yahoogroups.com> > [mailto:[email protected] <mailto:flexcoders%40yahoogroups.com> > ] On > > Behalf Of icepaco33 > > Sent: Sunday, November 11, 2007 5:52 AM > > To: [email protected] <mailto:flexcoders%40yahoogroups.com> > > Subject: [flexcoders] Can't select an item renderer in a list > > > > > > > > Greetings everybody, > > I have a peculiar problem. I have a list that is rendered by a custom > > item renderer. The list allows multiple selection and also drag and > > drop operation (in order to shuffle the item around) > > > > However when I move an item further down the list (drag & drop) then I > > can't select the items that are below the item immediately following > > the item I moved. > > > > Also if I change the content of my data provider, I will experience > > the same thing (can't select the items except the first one) > > > > I found out something very interesting : > > It seems that my list doesn't allow me to select items which the > > renderer is older (has been instanciated before) the previous > renderer. > > > > Allow me to demonstrate : > > If I have the following renderers : > > > > Renderer1 > > Renderer2 > > Renderer5 > > Renderer3 > > Renderer4 > > > > And assuming the number after 'renderer' indicates the order into > > which the renderer have been instanciated in my list then in the above > > situation I will not be able to select or rollover Renderer3 and > > Renderer4... > > > > This I believe is the problem that happens when I do a drag & drop > > operation and or when I reload my list by changing the DataProvider... > > > > N.B. : I use only 1 class for my renderer so all renderers are of the > > same type. I have also checked their UID and they seem to be distinct > > as far as I can tell... > > > > Hope you guys can help cuz this is really bothering me... > > > > Thanx for your attention ! > > > > paco > > >

