Tem a ver com o reaproveitamento do ItemRenderer por parte da FrameWork.

Ainda não usei o novo SDK mas no SDK 3 fazes:

 override public function set data(value:Object):void{
super.data = value;

if(value != null){
  // aqui setas o estado correcto da checkbox
}
}


Espero que funcione.

2010/12/21 Jorge Raimundo <[email protected]>

> Caríssimos,
>
> Aqui vai uma pergunta talvez estúpida: porque razão é que quando selecciono
> uma check box dentro um item de uma lista aparece umas quantas posições
> abaixo outro item seleccionado sem que eu tenha feito nada?
>
> O código em questão é o seguinte:
>
> <s:List id="listaGrupos"
> x="261" y="212" height="100" width="150"
>  contentBackgroundColor="#CCCCCC"
> borderColor="#B3B3B3"
>  dataProvider="{grupos}">
> <s:layout>
>  <s:VerticalLayout paddingTop="5" gap="0" useVirtualLayout="false"/>
>  </s:layout>
> <s:itemRenderer>
>  <fx:Component>
> <s:ItemRenderer height="20" width="100%" autoDrawBackground="true"
>  dataChange="dataChangeHandler(event)">
> <fx:Script>
>  <![CDATA[
> import events.ItemEvent;
>  import mx.events.FlexEvent;
>  private var seleccionado:Boolean = false;
>  private function dataChangeHandler(event:FlexEvent):void
>  {
> if (data)
>  escolhido.label = data.nome;
> }
>  private function escolhido_changeHandler(event:Event):void
>  {
> escolhido.selected ? dispatchEvent(new ItemEvent(ItemEvent.GROUP_SELECTION,
> itemIndex, true)) : dispatchEvent(new ItemEvent(ItemEvent.GROUP_DESELECTION,
> itemIndex, true));
>  }
> ]]>
>  </fx:Script>
>  <s:CheckBox id="escolhido" top="0" bottom="0" left="10" right="5"
>  change="escolhido_changeHandler(event)"
> skinClass="skins.checkbox.CheckBoxSkinEasyMessage"
>  fontFamily="Sansation" fontSize="10"/>
>  </s:ItemRenderer>
> </fx:Component>
>  </s:itemRenderer>
> </s:List>
>
> Obrigado,
> Jorge
>
> --
> Recebeu esta mensagem porque está inscrito no grupo "Mailing List da
> Comunidade Portuguesa de Rich Internet Applications - www.riapt.org" dos
> Grupos do Google.
> Para publicar uma mensagem neste grupo, envie um e-mail para
> [email protected].
> Para anular a inscrição neste grupo, envie um e-mail para
> [email protected] <riapt%[email protected]>.
> Para ver mais opções, visite este grupo em
> http://groups.google.com/group/riapt?hl=pt-PT.
>

-- 
Recebeu esta mensagem porque está inscrito no grupo "Mailing List da Comunidade 
Portuguesa de Rich Internet Applications - www.riapt.org" dos Grupos do Google.

Para publicar uma mensagem neste grupo, envie um e-mail para 
[email protected].
Para anular a inscrição neste grupo, envie um e-mail para 
[email protected].
Para ver mais opções, visite este grupo em 
http://groups.google.com/group/riapt?hl=pt-PT.

Responder a