Na aula de Actionscript que leccionei ontem (no curso de Programação de Aplicações Web na ETIC), os alunos pediram-me para ensinar Flash Remoting usando AMFPHP. Foi feito um exemplo, que embora básico, achei que seria útil publicar aqui.
Apesar de recomendar a utilização de Actionscript 3.0 (Flash CS3 ou Flex 2), ainda há muita gente que por motivos profissionais ou outros ainda está preso ao Flash 8, e gostaria de aprender a utilizar Flash Remoting com AMFPHP.
Este exemplo foi feito em Flash 8 (logo Actionscript 2.0), e utiliza o AMFPHP 1.2. Também deverá funcionar com outras versões mais recentes do AMFPHP (i.e. 1.9 beta 2), mas não testei. O objectivo é apenas explicar como se utiliza Flash Remoting em Flash 8 através de AMFPHP.
Esta mini-aplicação permite consultar, inserir, remover e pesquisar utilizadores numa base de dados. Isto, com apenas 50 linhas de código do lado do servidor, e do lado do cliente, cerca de 100 (onde metade são comentários).
Devem ser observados os seguintes ficheiros:
- ReadMe.txt, que possui as instruções necessárias para colocar este exemplo a correr
- GestorDeUtilizadoresService.php, na pasta amfphp/services que é o responsável por tudo o que acontece do lado do servidor
- GestorDeUtilizadoresService.as, que é o ficheiro que contém os métodos que permitem aceder ao serviço remoto. Este ficheiro foi gerado pelo AMFPHP usando o “service browser“, e levou umas alterações na assinatura dos métodos para permitir diferentes handlers para o mesmo método.
- exemploAMFPHP.fla, na frame 1 da layer actions .
O ficheiro ReadMe.txt deverá ser suficiente para explicar como se coloca este exemplo a funcionar localmente. Se mesmo assim houverem problemas, ou dúvidas, podem colocá-las na mailing list.
O exemplo pode ser descarregado daqui.
Infelizmente fazem faltam mais exemplos introdutórios (mesmo que em AS2), mas ultimamente tenho andado sem tempo nenhum… Sugiro a todos os que estão a dar os primeiros passos que partilhem os pequenos exemplos que constroem enquanto estão a aprender. Quem tiver código que possa partilhar, basta que avise na mailing list.