Ola, depois de muito sumido aqui do Blog, quase 6 dias direto sem parar em um projeto Flex(Chocolate e Flex), resolvi parar um pouco e escrever este Post.
Este projeto faz busca no AMFPHP toda vês que digita alguma palavra. Isso graças ao Timer que implementei para aguardar um pouco a cada chamada.
Arquivo main.mxmlprivate function init():void { // Timer para aguardar quando digita time.addEventListener("timer", TimeEnd); // Evento para quando digitar campoBusca.addEventListener(Event.CHANGE, changeFiltro) // Carrega o DataGrid PesquisarMensagens(); } private function changeFiltro(e:Event):void { // Para o Timer, se já estiver parado, não faz nada time.stop(); // Inicia o Timer time.start(); } private function TimeEnd(e:TimerEvent):void { // se o evento for executado, chama a função que faz a busca PesquisarMensagens(); } public function PesquisarMensagens():void { var remote:RemoteObject = new RemoteObject("RemotingMessage"); remote.showBusyCursor = true; remote.source = "099.cidadeService"; remote.addEventListener(ResultEvent.RESULT, ResultBusca) remote.getOperation("BunscaMensagens").send(campoBusca.text); } private function ResultBusca(e:ResultEvent):void { dgCidades.dataProvider = e.result as Array; }
Veja que a cada interação com o campo de pesquisa, o Flex para a contagem anterior e inicia uma nova contagem. Utilizei uma base de cidades de Santa Catarina com mais de 300 registros.
Veja o resultado: