Filtragem dinâmica no Flex com AMFPHP

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.mxml
private 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:

Código fonte aqui.

Fique por dentro de nossas novidades, ideias e atualizações