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".

Actionscript:
  1. <?php
  2.    class teste{        
  3.          function teste(){
  4.            $this->methodTable = array(
  5.                    "ola" => array(
  6.                    "description" => "testando o AMFPHP",
  7.                    "access" => "remote", // available values are private, public, remote
  8.                    "arguments" => array ("msg")
  9.                )
  10.            );
  11.          }      
  12.    
  13.            function ola($msg){
  14.                    return $msg;
  15.            }
  16.    }
  17.   ?>

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".

Actionscript:
  1. import mx.remoting.Service;
  2. import mx.services.Log;
  3. import mx.rpc.RelayResponder;
  4. import mx.rpc.FaultEvent;
  5. import mx.remoting.DataGlue;
  6. import mx.rpc.ResultEvent;
  7. import mx.remoting.PendingCall;
  8. import mx.remoting.RecordSet;
  9.  
  10. //troque localhost pelo endereço do seu servidor web
  11. var conexao = new Service("http://localhost/flashservices/gateway.php", new Log(), "teste", null, null);
  12. var pcs:PendingCall = conexao.ola("Ola Flash Remoting!!!");
  13. pcs.responder = new RelayResponder(this, "ola_Result", "ola_Fault");
  14. function ola_Result(res:ResultEvent) {
  15.     trace(res.result);
  16. }
  17. function ola_Fault(fault:FaultEvent) {
  18.     trace(fault.fault.faultstring);
  19. }

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/

22 Comments

  • By Sergio Souza, January 27, 2006 @ 10:05

    Olá,

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

    Valeu!!!

  • By Leonardo França, January 27, 2006 @ 11:52

    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/

  • By Jonas Gozdecki, February 10, 2006 @ 20:07

    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.

  • By anderson, March 20, 2006 @ 19:36

    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.

  • By Leonardo França, March 21, 2006 @ 09:17

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

    ate mais
    Leonardo França

  • By Osmar, March 25, 2006 @ 18:41

    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.”

  • By Leonardo França, March 25, 2006 @ 18:53

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

  • By Osmar, March 25, 2006 @ 20:58

    Valeu mesmo kara era esse o problema!!!

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

  • By Augusto Will, April 7, 2006 @ 22:13

    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?

  • By Leonardo França, April 7, 2006 @ 23:10

    estranho acontecer isso, veja se acontece com esse exemplo:

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

    Ate mais
    Leonardo França

  • By Augusto Will, April 8, 2006 @ 14:50

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

  • By Augusto Will, April 8, 2006 @ 16:30

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

  • By Augusto Will, April 9, 2006 @ 04:42

    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!!!

  • By Fabio Adorno, May 25, 2006 @ 11:17

    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

  • By Leonardo França, May 28, 2006 @ 15:32

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

  • By Fernando Brito, June 20, 2006 @ 09:53

    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….

  • By Alecio, June 22, 2006 @ 20:32

    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!!!!

  • By Beto, July 24, 2006 @ 11:18

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

  • By Leonardo França, July 24, 2006 @ 11:22

    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

  • By Luiz Fabiano, November 19, 2006 @ 00:10

    Consegui! Instalei e funcionou! Parabéns!

  • By Matias, February 25, 2007 @ 18:57

    ó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

  • By Leonardo França, March 5, 2007 @ 13:07

    sugestão anotada ;)

Other Links to this Post

RSS feed for comments on this post. TrackBack URI

Leave a comment

WordPress Themes


Video & Audio Comments are proudly powered by Riffly