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.