Se esta querendo aprender ou iniciar novos projetos em Flex, clique aqui

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.

Gostou? Não esqueça de curtir!

Ou compartilhe o link com seus amigos

6 comentários

Deixe uma resposta

  1. Cara estou tentando fazer isso agora mesmo. Vou testar sua aplicação

     
  2. [...] galera. Em um exemplo anterior havia mostrado como filtrar dinamicamente dados do Flex. Neste vou usar a mesma estrutura e apenas [...]

     
  3. Nao consegui aplicar. o meu amfphp ja esta hospedado e funcionando bem. o funcionamento da funcao ("BunscaMensagens").send no meu browse amfphp tambem esta funcionando perfeiramente com minha tabela. Mas a aplicacao no flex nao funciona...  
    Essa aplicacao e muito importante.
    Help-me please.

     
  4. Onde esta a "RemotingMessage"?

     
  5. O sistema ficou um pouquinho lento por ter de fazer uma requisição ao servidor cada vez que o filtro muda (o que acontece muitas vezes) desse modo, ao meu ver, seria mais rápido de início, jogar os dados em um array no flex, mostrá-lo no datagrid e a partir daí  ir fazendo a filtragem no array... teriamos aqui, menos tráfego com o servidor e maior rapidez no retorno dos dados...

     
  6. Bom tutorial... irei precisar disso...valeu