Comunidad de diseño web y desarrollo en internet

Tutorial de inducción e instalación de Flash Remoting y AMFPHP

Existe la creencia de que la tecnología remoting de Flash, solo es para grandes desarrolladores ó empresas potenciales.

Yo por lo único que estaba de acuerdo en eso, es por el costo de las licencias para el lado del Servidor. Pero hace ya tiempo que surgió amfphp, una tecnología del lado del servidor, de licencia GNU/GPL. Por lo que no es necesario desembolsar una cantidad Fuerte de dinero.

IMPORTANTE: No te saltes ningún paso. De lo contrario no te va a funcionar.

Instalando los componentes de Macromedia

Instalar los componentes Remoting de Macromedia.
De : Click aqui para bajar

Una vez que bajes los componentes, cierra Flash y vuelvelo a abrir. Para comprobar si se instalaron los componentes, hay que cumplir una de las dos siguientes opciones para avanzar al siguiente paso:


OPCION1: Si instalaste los componentes de AS 1.0, pon en una pelicula nueva este codigo:

#include "NetServices.as" 
#include "NetDebug.as"

Si no te marca ningun error, se han instalado correctamente los componentes.

OPCION2: Si instalaste los componentes de AS 2.0, Ve a:
Ventana -> Otros Paneles -> Bibliotecas Comunes -> Remoting
Windows -> Other Panels -> Common Libraries -> Remoting

Si se te abre un panel de biblioteca, con dos elementos uno: RemotingClasses y otro RemotingDebugClasses. Se han instalado correctamente los componentes.

Instalar AMFPHP.

Ahora tenemos que descargar amfphp de:
Aqui

Se descarga un archivo zip, hay que extraerlo. Dentro hay una carpeta llamada flashservices, hay que mover unicamente la carpeta flashservices, a la carpeta raiz de nuestro servidor.

Ejemplos de donde ponerlo en Win y IIS:
_Ruta: C:Inetpubwwwrootflashservices

Ejemplo en Win y Apache:
_Ruta: C:WebApachehtdocflashservices

Ejemplo en nuestro servidor remoto:
_Ruta: www/flashservices

De tal manera, que sin importar cual sea tu servidor la carpeta flashservices la puedes referenciar asi:
http://tusitio/flashservices/

Creando los archivos PHP

Es muy importante en este paso descargar el editor de texto:
Programmers Notepad.
Si no lo descargas, y usas el Bloc de Notas de Windows, Macromedia DreamWeaver u otro que no sea el que te puse, vas a batallar demasiado. Ya que necesitamos un editor de texto que ponga el salto de linea de Linux " ".

Una vez instalado el Programmers Notepad, vamos a abrirlo, le damos: File -> New -> Plain Text

Y ponemos este codigo, para crear el puente hacia nuestros servicios que iremos creando:

<?php 
include("./app/Gateway.php");
$gateway = new Gateway();
$gateway->setBaseClassPath(realpath("services/") . "/");
$gateway->service(); ?>

Lo guardamos( File -> Save) dentro de la carpeta flashservices, y le ponemos de nombre: "gateway.php".
Ahora vamos a cerrar el archivo.

Para probar que todo Va bien, en nuestro navegador vamos a poner la siguiente URL.
http://tusitio/flashservices/gateway.php
Debe aparecer una ventana, que dice "Guardar archivo gateway.php como...", vamos a bajar ese archivo, en nuestra pc. Si el archivo que se guarda esta totalmente vacio, eso indica que se creo el gateway correctamente.

Vamos a crear un nuevo archivo php, con el siguiente codigo:

<?php 
class holaMundo
{
function holaMundo()
{
$this->methodTable = array(
"enviar" => array(
"description" => "Regresa hola mundo, y el texto enviado, lo transforma",
"access" => "remote", // Posibles valores private, public, remote
"arguments" => array ("dato")
)
);
}
function enviar($data)
{
$midato="Hola Mundo. Tu usuario me enviaste: ".$data;
return $midato;
}
}
?>

Lo guardamos( File -> Save) en la carpeta flashservices hay una carpeta llamada services, en esa lo guardamos con el nombre: "holaMundo.php".
Para ver que esta bien todo, entra a:
http://tusitio/flashservices/services/holaMundo.php
Y el navegador debe mostrar una pagina totalmente en blanco.

4 :: Generando el ActionScript.

AS 1.0 Si bajamos los componentes de AS 1.0, solo hay que poner el siguiente codigo:

#include "NetServices.as"
#include "NetDebug.as"
capturaRespuesta = new Object();
capturaRespuesta.enviar_Result = function(data) {
trace("Dato recibido del servidor: "+data);
};
capturaRespuesta.onStatus = function(data) {
trace("Ocurrio un error.");
trace("Detalles del error: "+data.description);
};
NetServices.setDefaultGatewayUrl("http://tusitio/flashservices/gateway.php");
conn = NetServices.createGatewayConnection();
serv = conn.getService("holaMundo", capturaRespuesta);
serv.enviar("Probando");

AS 2.0 Si bajamos los componentes de AS 2.0.
Tenemos que ir a:
Ventana -> Otros Paneles -> Bibliotecas Comunes -> Remoting
Arrastrar los dos componentes(RemotingClasses y RemotingDebugClasses) a nuestra pelicula. y poner el siguiente codigo:

import mx.remoting.NetServices; 
import mx.remoting.Connection;
mx.remoting.debug.NetDebug.initialize();
capturaRespuesta = new Object();
capturaRespuesta.enviar_Result = function(data) {
trace("Dato recibido del servidor: "+data);
};
capturaRespuesta.onStatus = function(data) {
trace("Ocurrio un error.");
trace("Detalles del error: "+data.description);
};
NetServices.setDefaultGatewayUrl("http://tusitio/flashservices/gateway.php");
conn = NetServices.createGatewayConnection();
serv = conn.getService("holaMundo", capturaRespuesta);
serv.enviar("Probando");

Podras notar en el codigo, que lo importante es definir la ruta del gateway. y el servicio que creamos.

Para crear otro servicio, crea un nuevo php, en la carpeta services, ponle de nombre al archivo php, el mismo que a la clase. Basate en el que creamos de holaMundo.php

De verdad hice un gran esfuerzo, por usar terminos comunes y no tecnicos, para una mejor comprensión. Desinstale en dos maquinas todo, y volví a instalar todo, siguiendo el tutorial y me funcionó.

Espero que te haya servido para introducirte en el mundo Flash remoting.

Dudas, comentarios, ponerlas en el Foro.

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

El autor de este artículo ha cerrado los comentarios. Si tienes preguntas o comentarios, puedes hacerlos en el foro

Entra al foro y participa en la discusión

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate