isso mesmo, pelo que eu ja estudei do combobox, list e datagrid ele
controstroi os itens de acordo com a rolagem ou seja so existem os itens
que voce ta vendo os pra baixo nao existem por isso voce tem de controlar
de acordo com o seu dataprovider, que deve ser um array nao ?  ai eu sempre
controlo o array e dessa forma consigo mexer no itemrender

2012/1/11 Cristian Göhl <[email protected]>

>   Opa,
>
> se entendi você quer marcar tudo, simplesmente altere o valor no seu
> dataProvider(bindable).
>
> O IR deve identificar a mudança e cair no set data e já era.
>
> abraço.
>
>  *From:* Julio Cesar <[email protected]>
> *Sent:* Wednesday, January 11, 2012 12:04 PM
> *To:* [email protected]
> *Subject:* Re: [flexdev] Re: Como acessar um itemrenderer de um list ??
>
> Cara desse jeito deu quase certo, porém acontece o seguinte,
> meu list tem um scroll, tudo q esta visível ele pega, o resto q vem depois
> de descer ele nao pega
>
>
> Em 11/01/2012 11:25, Ernani Joppert Pontes Martins escreveu:
>
> Faça assim:
>
>  <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009";
>   xmlns:s="library://ns.adobe.com/flex/spark"
>   xmlns:mx="library://ns.adobe.com/flex/mx"
>                            width="100%" height="100%"
> creationComplete="initApp()">
>
>
>  private function initApp() : void
> {
>  meuComponente.itemRenderer = new ClassFactory( MeuRenderer );
> }
>
>  private function obtemObjeto( ) : void
> {
>                                  var i : int =
> meuComponente.selectedIndex;
> var renderer : MeuRenderer = meuComponente.dataGroup.getElementAt( i ) as
> MeuRenderer;
>
> ............
> seu alerta ->
>                                 Alert.show("Cliquei: " +
> renderer.labelDisplay.text);
>                                .............
> }
>
> Espero ter ajudado.
>
> Abraço,
>
> Ernani
>
> 2012/1/11 Julio Cesar <[email protected]>
>
>> Tem alguma forma de eu percorrer meu list.dataProvider e chamar essa
>> função:
>>
>>
>> public function clickCheck(event:Event):void
>>             {
>>                 var e:MyCheckBoxEvent = event as MyCheckBoxEvent;
>>                 //e.itemRenderer.cb.label = "changed"; //just to verify
>> that we're looking at the correct renderer :)
>>                 Alert.show("Cliquei: " +
>> e.itemRenderer.labelDisplay.text);
>>             }
>>
>> ?????
>>
>> Em 11/01/2012 11:03, Ernani Joppert Pontes Martins escreveu:
>>
>> Eu fiz algo parecido, mas, como no componente List eu tenho um objeto
>> (VO), eu setei no VO uma propriedade booleana.
>>
>> Como tudo se trata de um VO genérico, eu fiz o item renderer como se
>> fosse um componente data aware...:P
>>
>> MeuVO contém a propriedade
>>
>> var isSelected : Boolean = false;
>>
>> No ItemRenderer em si, fiz os seguintes métodos, dentro de fx:Script...
>>
>>                 // grava ou remove do db de acordo com a propriedade
>> isSelected
>>                  private function onChange( evt : Event ) : void
>>                 {
>>                     var vo : MeuVO = data as MeuVO;
>>
>>                     if ( !vo.isSelected )
>>                     {
>>                         // grava no db
>>                         setVOValueInDB.token = service.createOrUpdateVO(
>> obj );
>>                     }
>>                     else
>>                     {
>>                         // deleta do db
>>                         removeVOValueInDB.token = service.deleteVO( obj );
>>                     }
>>                 }
>>
>>                 // callback de retorno quando marcando um item
>>                 // ou seja, marcando um item como selecionado
>>                  protected function setVOValueInDBResultHandler( event :
>> ResultEvent ) : void
>>                 {
>>                     var ret : Boolean = setVOValueInDB.lastResult as
>> Boolean;
>>
>>                     if ( ret )
>>                     {
>>                         data.isSelected = true;
>>                     }
>>                     else
>>                     {
>>                         data.isSelected = false;
>>                     }
>>                 }
>>
>>                 // retorno do callback quando removendo um registro
>>                 // ou seja, desmarcando um item
>>                 protected function removeVOValueInDBResultHandler( event
>> : ResultEvent ) : void
>>                 {
>>                     var ret : Boolean = removeVOValueInDB.lastResult as
>> Boolean;
>>
>>                     if ( ret )
>>                     {
>>                         data.isSelected = false;
>>                     }
>>                     else
>>                     {
>>                         data.isSelected = true;
>>                     }
>>                 }
>>
>> Já no MXML do mesmo item renderer, contém isto:
>>
>>      <fx:Declarations>
>>         <services:GenericVOService id="service"
>> fault="Alert.show( 'Aqui vai a mensagem de erro do RemoteObject, uma msg
>> genérica.' )"
>> showBusyCursor="true" />
>>
>>         <s:CallResponder id="setVOValueInDB"
>> result="setVOValueInDBResultHandler(event)" />
>>         <s:CallResponder id="removeVOValueInDB"
>> result="removeVOValueInDBResultHandler(event)" />
>>     </fx:Declarations>
>>
>>      <s:HGroup width="100%" height="100%" horizontalAlign="left"
>> verticalAlign="middle" paddingLeft="5">
>>         <s:CheckBox selected="{ data.isSelected }"
>> click="onChange(event);" />
>>         <s:Label text="{ data.categoria }" />
>>     </s:HGroup>
>>
>> Abraço,
>>
>> Ernani
>>
>> 2012/1/11 Julio Cesar <[email protected]>
>>
>>> Pessoal consegui por parte,* (agora preciso adaptar isso para
>>> selecionar todos de uma vez)*
>>>
>>> consegui na aplicação principal pegar o event do itemrenderer, tipo o
>>> click do checkbox.
>>>
>>> criei uma classe:
>>>
>>> package
>>> {
>>>     import flash.events.Event;
>>>
>>>     public class MyCheckBoxEvent extends Event
>>>     {
>>>         public var isSelected:Boolean;
>>>         public var itemRenderer:Object;
>>>         public static const SELECTED_CHANGED:String = "selectedChanged";
>>>
>>>         public function MyCheckBoxEvent(type:String,
>>> itemRenderer:Object, isSelected:Boolean=false){
>>>             super(type);
>>>             this.itemRenderer = itemRenderer;
>>>             this.isSelected = isSelected;
>>>         }
>>>
>>>         override public function clone():Event{
>>>             return new MyCheckBoxEvent(type, this.itemRenderer,
>>> this.isSelected);
>>>         }
>>>     }
>>> }
>>>
>>>
>>> no click do meu checkbox dentro do itemrenderer coloquei isso:
>>>
>>>                 var evt:MyCheckBoxEvent = new
>>> MyCheckBoxEvent(MyCheckBoxEvent.SELECTED_CHANGED, this, cb.selected);
>>>                 owner.dispatchEvent(evt); //Dispatch event from the List
>>> component, not from the item renderer
>>>
>>> ai no meu list coloquei assim:
>>>
>>> list.addEventListener('selectedChanged',clickCheck);
>>>
>>> e minha funcao:
>>>
>>>
>>> public function clickCheck(event:Event):void
>>>             {
>>>                 var e:MyCheckBoxEvent = event as MyCheckBoxEvent;
>>>                 Alert.show("Cliquei: " +
>>> e.itemRenderer.labelDisplay.text);
>>>             }
>>>
>>>
>>> fonte: http://nwebb.co.uk/blog/?p=47
>>>
>>>
>>>
>>> Em 11/01/2012 01:58, Cristian Göhl escreveu:
>>>
>>>  Boa madrugada hehe,
>>>
>>> Eu uso *override no set data** *para os meus IR, indiferente de criados
>>> via MXML ou AS.
>>>
>>> override public function set data(value:Object):void
>>>         {
>>>             super.data = value;
>>>             if(value != null)
>>>             {
>>>                 // bla bla bla acessa os dados de data[column.dataField]
>>> ou não e faz o que precisar com outros comps(cb, label,etc);
>>>             }
>>>         }
>>>
>>> Ai, meio que esqueci, acho que cria o change do CB no IR, e manda
>>> atualizar os dados originais(ex. data[column.dataField]);
>>>
>>> Dependendo o que você precisar, também pode disparar eventos do IR e
>>> escutar no form, então fazer algo.
>>>
>>> Abraço.
>>>
>>>  *From:* Julio Cesar <[email protected]>
>>> *Sent:* Tuesday, January 10, 2012 4:33 PM
>>> *To:* [email protected]
>>> *Subject:* Re: [flexdev] Re: Como acessar um itemrenderer de um list ??
>>>
>>> Outra coisa, meu itemrenderer não é só um checkbox, é um checkbox, um
>>> label, e um textinput, pq qdo clico 2x em cima dele, consigo renomeá-lo.
>>>
>>> Em 10/01/2012 14:47, Julio Cesar escreveu:
>>>
>>> Assim, estou montando um list dinamicamente:
>>>
>>> var lista:List = new List();
>>>        lista.width = 100;
>>>       e vou setando as confs dele (tamanho, cor, etc...)
>>>
>>> depois eu digo que cada linha será um checkbox, a forma que eu achei
>>> dinamicamente foi com ClassFactory, desssa forma:
>>>
>>>                     var customItemRenderer:ClassFactory = new
>>> ClassFactory(checkRenderer);
>>>                     lista.itemRenderer = customItemRenderer;
>>>
>>> depois eu preencho o dataprovider dele com meu arraycollection
>>>
>>> depois eu adiciono na tela:
>>> panel_listas.addElement(lista);
>>>
>>>
>>> tudo isso dinamicamente, até ai blz, gera legal, ai eu quero acessar
>>> alguma linha e dar um selected no checkbox, ou até mesmo selecionaar todos
>>> os checks ao msm tempo, é ai q eu enrosco.
>>>
>>> erictonussi
>>> eu quero pq eu quero saber quais estão marcados
>>>
>>> helio.afsilva
>>> não sei se da para pegar o array bindado pq toda hora muda ele
>>>
>>> leonardoc.oliveira
>>> gostei do seu link hehe
>>>
>>> Em 10/01/2012 13:36, Eric Tonussi escreveu:
>>>
>>> Explica melhor o que exatamente você quer fazer. Para que você quer
>>> acessar este item render?
>>>
>>> Em 10 de janeiro de 2012 13:25, Julio Cesar <[email protected]>escreveu:
>>>
>>>> Cara difícil isso, coloquei um breakpoint nas linhas abaixo (na vdd não
>>>> manjo mto debugar) to tentando aprender
>>>>
>>>> var customItemRenderer:ClassFactory = new ClassFactory(checkRenderer);
>>>> lista.itemRenderer = customItemRenderer;
>>>>
>>>> lista.dataProvider = ac_colunas;
>>>>
>>>> dentro de checkRenderer tem um combobox chamado cb que recebe 'selected'
>>>>
>>>> mas não consegui identificar ainda
>>>>
>>>>
>>>> Em 10/01/2012 12:47, Leonardo Oliveira escreveu:
>>>>
>>>>> Julio, use o modo debug. Coloque um breakpoint onde vc quiser,
>>>>>
>>>>> adicione uma expressão watch ao seu itemRenderer e veja na aba
>>>>> Expressions. Tudo que vc precisa está lá.
>>>>>
>>>>> On 10 jan, 11:05, Julio Cesar<[email protected]>  wrote:
>>>>>
>>>>>> Boa tarde pessoal
>>>>>>
>>>>>> Tenho um list com itemrenderer de um combobox
>>>>>>
>>>>>> Gostaria de saber se tem como acessar este item renderer
>>>>>>
>>>>>> valeu
>>>>>>
>>>>>
>>>> --
>>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>>> Para enviar uma mensagem, envie um e-mail para [email protected]
>>>> Para sair da lista, envie um email em branco para
>>>> [email protected]
>>>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>>>
>>>
>>> --
>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>> Para enviar uma mensagem, envie um e-mail para [email protected]
>>> Para sair da lista, envie um email em branco para
>>> [email protected]
>>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>>
>>>
>>>
>>> --
>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>> Para enviar uma mensagem, envie um e-mail para [email protected]
>>> Para sair da lista, envie um email em branco para
>>> [email protected]
>>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>>  --
>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>> Para enviar uma mensagem, envie um e-mail para [email protected]
>>> Para sair da lista, envie um email em branco para
>>> [email protected]
>>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>>
>>>
>>>  --
>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>>> Para enviar uma mensagem, envie um e-mail para [email protected]
>>> Para sair da lista, envie um email em branco para
>>> [email protected]
>>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>>
>>
>> --
>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>> Para enviar uma mensagem, envie um e-mail para [email protected]
>> Para sair da lista, envie um email em branco para
>> [email protected]
>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>
>>
>>  --
>> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
>> Para enviar uma mensagem, envie um e-mail para [email protected]
>> Para sair da lista, envie um email em branco para
>> [email protected]
>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>>
>
> --
> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
> Para enviar uma mensagem, envie um e-mail para [email protected]
> Para sair da lista, envie um email em branco para
> [email protected]
> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>
>
> --
> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
> Para enviar uma mensagem, envie um e-mail para [email protected]
> Para sair da lista, envie um email em branco para
> [email protected]
> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>
> --
> Você recebeu esta mensagem porque está inscrito na lista "flexdev"
> Para enviar uma mensagem, envie um e-mail para [email protected]
> Para sair da lista, envie um email em branco para
> [email protected]
> Mais opções estão disponíveis em http://groups.google.com/group/flexdev
>



-- 
*Hélio Antonio Francisco Silva*
Desenvolvedor web
Certificado Flash developer
Certificado Flash Design
Certificado web developer
Consultor Microsiga / Totvs
Desenvolvedor ADVPL / ASP
Analista de sistemas e ERP Sênior.

-- 
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para 
[email protected]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev

Responder a