Instalando o AMFPHP

Vamos aprender como instalar o AMFPHP e fazer um teste para ver seu funcionamento. Primeiramente baixe a versão mais recente no site http://www.amfphp.org/ e as classes do Flash Remoting. Depois de descompactado e enviado para o servidor a sua estrutura de diretorios deve ficar mais ou menos como na imagem a seguir:

Estrutura de diretorios do AMFPHP

Note que por padrão salvaremos as classes criadas no diretorio “services”, o arquivo “gateway.php” apontará para esse mesmo diretório.
Podemos testar nosso AMFPHP agora, vamos criar uma classe para teste e salva-la no diretorio “services”.

[as]< ?php class teste{ function teste(){ $this->methodTable = array(
“ola” => array(
“description” => “testando o AMFPHP”,
“access” => “remote”, // available values are private, public, remote
“arguments” => array (“msg”)
)
);
}

function ola($msg){
return $msg;
}
}
?>[/as]

Vamos para o Flash agora, usaremos o Action Script 2.0 para isso.
Abra um novo documento no Flash e na primeira camada aperte F9 para abrir o painel de “actions”.

[as]import mx.remoting.Service;
import mx.services.Log;
import mx.rpc.RelayResponder;
import mx.rpc.FaultEvent;
import mx.remoting.DataGlue;
import mx.rpc.ResultEvent;
import mx.remoting.PendingCall;
import mx.remoting.RecordSet;

//troque localhost pelo endereço do seu servidor web
var conexao = new Service(“http://localhost/flashservices/gateway.php”, new Log(), “teste”, null, null);
var pcs:PendingCall = conexao.ola(“Ola Flash Remoting!!!”);
pcs.responder = new RelayResponder(this, “ola_Result”, “ola_Fault”);
function ola_Result(res:ResultEvent) {
trace(res.result);
}
function ola_Fault(fault:FaultEvent) {
trace(fault.fault.faultstring);
}[/as]

Dê Ctrl+enter para testar sua aplicação, caso tudo esteja certo deverá aparecer algo como na imagem abaixo:
Teste Ola Flash Remoting!!!

Flash Remoting Developer Center
http://www.macromedia.com/devnet/flashremoting/

AMFPHP
http://www.amfphp.org/

AMFPHP, Flash, Flash Platform, Flash Remoting, PHP, Principal, RIA

23 comments


  1. Olá,

    Você possui algum exemplo do Remoting para Flash 8?
    Pois nenhum dos exemplos do Flash MX2004 funciona no Flash 8!

    Valeu!!!

  2. os meus exemplos são usando o Flash 8, verifique se vc instalou as classes do remoting para o FLash 8
    http://www.macromedia.com/software/flashremoting/downloads/components/

  3. Jonas Gozdecki

    Saudações Leonar França,
    O arquivo teste.php foi carregado com sucesso, mas a classe teste não foi encontrada… o que pode estar errado?
    Não alterei seu exemplo em A.S.

    No Aguardo Jonas Gozdecki
    Podes me adicionar no Msn
    jonasgozdecki@hotmail.com
    valeu.

  4. anderson

    ola!!estou fazendo um site no flash 8,mas esse mesmo site nao abre no flash mx 2004.mas precisaria pq tenho exemplos de formularios de email só em flash mx.obrigado.

  5. No Flash 8 tem a opção para salvar para o mx 2004, é so pedir “salvar como…”

    ate mais
    Leonardo França

  6. Muito bom esse artigo, mais tentei na minha maquina e de um erro diferente, instalei todos os componetespara flash 8 esse eh o erro:

    “The file {teste.php} exists and was included correctly but a class by that name could not be found in that file. Perhaps the class is misnames or you are running into a case-sensitivity issue, or the class exists but contains syntax errors.”

  7. Ola Osmar, tente trocar as aspas na classe PHP por ” e tente novamente. As aspas que o blog coloca resultam em erros mesmo.

  8. Valeu mesmo kara era esse o problema!!!

    Parabens!!!!!!!!!!!

  9. Augusto Will

    Cara, esse exemplo funciona na mesma hora quando dou control+enter no flash e ele abre o arquivo lá… Mas quando coloco na net… Demora 15 minutos para começar a funcionar… O swf carrega, fica em branco, e depois de muito tempo dá certo. Porque isso acontece?

  10. estranho acontecer isso, veja se acontece com esse exemplo:

    http://www.osfederais.com/datagrid.html

    Ate mais
    Leonardo França

  11. Augusto Will

    Eu tenho que mandar algo pro servidor além do swf e dos arquivos php?
    Obrigado pela atenção!

  12. Augusto Will

    Não, não está acontecendo com o exemplo a cima. Está abrindo normalmente.

  13. Augusto Will

    Pelo amor de deus cara, me ajuda!!!
    São 4:41 da manhã, até coloquei o despertador pra ver se já responderam à s minha questão nos fóruns ou aqui e nada, estou fazzendo a coisa mais importante da minha carreira atualmente mas não há jeito de funcionar…. Vim aqui suplicar uma ajuda. Se você puder ajudar, eu agradeço profundamente. Valeu cara!!!

  14. OLá Leonardo França

    Parabens pelo Tutorial.

    Estou com o mesmo problema do colega Augusto Will, o exemplo funciona localmente dando control+enter, mas não funciona na Web.
    Simplesmente a página permanece em branco.
    No exemplo http://www.osfederais/datagrid.html
    a página é carregada normalmente.

    Você ou alguem descobriu o que é isto ?
    Um abraço
    Fabio Adorno

  15. o Will descobriu que era uma configuração no servidor que estava faltando, vou ver com ele exatamente oq era e ti passo

  16. Tive problemas para rodar este exemplo, depois de algumas tentativas notei que as aspas (“) estavam diferentes, daí troquei as aspas (“) que veio no exemplo…. Bum!!! agora roda tranquilamente…..
    Valeu….

  17. Olha eu estou com esse problema ai tambem local ele funcioa tudo certo mais quando eu coloco na net ele não funciona!!!

    Teria como me ajudar nessa ai tambem Obrigado!!!!

  18. Beto

    Quais os parametros passados aqui:
    var conexao = new Service(“http://localhost/flashservices/gateway.php”, new Log(), “teste”, null, null);

  19. os parametros sao o endereço do gateway, geralmente é o endereço do dominio + diretorio do AMFPHP + gateway.php, o outro parametro é o nome da classe salva no diretorio services, no exemplo foi usado uma classe com nome de \”teste\”.
    o new Log(), é um debug que não é obrigatorio, ira mostrar no painel output o resultado da consulta

  20. Luiz Fabiano

    Consegui! Instalei e funcionou! Parabéns!

  21. Matias

    ótima introdução era isso que estava buscando…
    Me tira uma dúvida como posso proteger minha aplicação em Flex + AFMPHP usando Session ?

    Isso daria um bom artigo creio que muita gente tem essa dúvida.Obrigado

  22. Muito bom post. Parabéns!

Leave a Reply