icemaster 0 Denunciar post Postado Junho 16, 2011 Estou querendo acessar o atributo de um objeto que por sua vez encontra-se dentro de uma lista retornada do webservice Fiz um callresponder chamado ListaResult então coloquei assim: private var obj:ArrayCollection = (ListaResult.lastresult as Arraycollection); protected function returnVar():void { manag_form.returnCargo = obj.getItemAt(1).cargo; } manag_form = meu componente returnCargo = text cargo = atributo que quero acessar dentro do meu objeto no caso, quero colocar todos os objetos dentro de um arrayCollection e acessar os atributos do objeto 'X' Alguem sabe como proceder? Compartilhar este post Link para o post Compartilhar em outros sites
Felipe Lion 0 Denunciar post Postado Junho 16, 2011 Você já tentou setar ele como: private var obj:ArrayCollection = new ArrayCollection(ListaResult.lastresult as Arraycollection); Verifica se dessa forma funciona... Abraço. Compartilhar este post Link para o post Compartilhar em outros sites
Irineu Antunes 2 Denunciar post Postado Junho 19, 2011 Amigo este é um típico problema da falta de generics... AS Collections por default usam o topo da herança: Object. Então quando você insere algo lá, automaticamente ele considera object. No java ou o c# usando generics você meio que "tipa" a collection ( ArrayCollection<MeuObj>), aiserá uma array collection dos seus objetos e v poderá fazer isto livremente: obj.getItemAt(1).cargo; Mas se não me engano soh o vector que possui generics no Flash, então não resta outra opção a nao ser fazer o cast: manag_form.returnCargo = (obj.getItemAt(1) as MeuObj).cargo; Compartilhar este post Link para o post Compartilhar em outros sites
icemaster 0 Denunciar post Postado Junho 22, 2011 obrigado pela dica irineu vou testar e já retorno ---------------------------------------------------------- ok, eu testei mas ainda não funcionou. deu o seguinte erro: Error #1009: Cannot access a property or method of a null object reference. at Organograma()[C:\Documents and Settings\hb67634\Desktop\Flex_Projetos\Organograma\src\Organograma.mxml:34] at _Organograma_mx_managers_SystemManager/create()[_Organograma_mx_managers_SystemManager.as:53] at mx.managers.systemClasses::ChildManager/initializeTopLevelWindow()[E:\dev\hero_private\frameworks\projects\framework\src\mx\managers\systemClasses\ChildManager.as:311] at mx.managers::SystemManager/initializeTopLevelWindow()[E:\dev\hero_private\frameworks\projects\framework\src\mx\managers\SystemManager.as:3063] at mx.managers::SystemManager/http://www.adobe.com/2006/flex/mx/internal::kickOff()[E:\dev\hero_private\frameworks\projects\framework\src\mx\managers\SystemManager.as:2849] at mx.managers::SystemManager/http://www.adobe.com/2006/flex/mx/internal::preloader_completeHandler()[E:\dev\hero_private\frameworks\projects\framework\src\mx\managers\SystemManager.as:2729] at flash.events::EventDispatcher/dispatchEventFunction() at flash.events::EventDispatcher/dispatchEvent() at mx.preloaders::Preloader/timerHandler()[E:\dev\hero_private\frameworks\projects\framework\src\mx\preloaders\Preloader.as:542] at flash.utils::Timer/_timerDispatch() dexei meu codigo assim agora: [bindable] private var funcLista:ArrayCollection =(ListaResult.lastResult as ArrayCollection); protected function application1_creationCompleteHandler(event:FlexEvent):void { form_manag.returnCargo=(funcLista.getItemAt(1) as Funcionario).cargo; } Compartilhar este post Link para o post Compartilhar em outros sites
Irineu Antunes 2 Denunciar post Postado Junho 22, 2011 isto quer dizer que (funcLista.getItemAt(1) as Funcionario) não pode ser um obj do tipo Funcionario, então o resultado do cast será null. ([null]).cargo lançará esta exception. Percebi que você pegou o último elemento de uma lista: ListaResult.lastResult as ArrayCollection, e considerou como uma arraycollection? É uma arraycollection dentro de outra? protected function application1_creationCompleteHandler(event:FlexEvent):void { trace(funcLista); //para ver se não é null trace(funcLista.getItemAt(1));//para ver se não é null e o tipo //form_manag.returnCargo=(funcLista.getItemAt(1) as Funcionario).cargo; } depois você posta o resultado Compartilhar este post Link para o post Compartilhar em outros sites
icemaster 0 Denunciar post Postado Junho 27, 2011 ok eu testei mas nao deu certo. pelo que me parece, a variável [bindable] private var funcLista:ArrayCollection =(ListaResult.lastResult as ArrayCollection); não tem nada dentro. meu retorno na aba data/serve tá assim: Lista():Funcionario[] -cargo:String -id:int -managerDirect:String -nome:String -site:String queria saber o seguinte, isso significa que Lista é um arraycollection com varios funcionarios dentro? Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Brito 12 Denunciar post Postado Junho 27, 2011 Ta faltando da o new ArrayCollection, e depois você vai conseguir fazer o que você quer. Abs Compartilhar este post Link para o post Compartilhar em outros sites
icemaster 0 Denunciar post Postado Junho 28, 2011 valeu vou testar ja retorno. ---------------- eh ta dando o mesmo erro. eu fiz: var funcLista:ArrayCollection=new ArrayCollection(ListaResult.lastresult); form_manag.returnCargo=(funcLista.getItemAt(0) as Funcionario).cargo; ta dizendo que nao pode acessar o objeto. can't access a value of null or without value reference. Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Brito 12 Denunciar post Postado Junho 28, 2011 Tenta assim: var funcLista:ArrayCollection = new ArrayCollection(ListaResult.lastresult as Array); form_manag.returnCargo=(funcLista.getItemAt(0) as Funcionario).cargo; Depois debuga certinho pra ve o que ta indo pro collection. Abs Compartilhar este post Link para o post Compartilhar em outros sites