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

Responder a