Hola mundo en AMFPHP y Flex 2.0
Hoy he tenÃdo un rato para buscar algo de información y empezar a coquetear con Flex y AMFPHP y la verdad es que el resultado ha sido grato.
Lo primero que hice fue instalar amfphp en mi sistema. Para ello bajé la version 1.2 de AMFPHP, la descomprimà y copie sus 3 carpetas dentro mi carpata flashservices. (Por cierto, me sorpendió gratamente encontrar el navegador de servicios)
Obviamente me descargué flex desde Adobe Labs Flex Builder y el player 8.5 de flash (bueno ese ya lo tenÃa :p ) e instalé ambos.
En primer lugar empezaremos a crear el servicio de romoting de nuestro hola mundo... creé algo sencillo tal como:
Guardamos como "HolaMundo.php" en nuestra carpeta flashservices/services y... voila ya tenemos nuestro primer servicio en AMFPHP. Básicamente este servicio se encargará de recibir un parametro y devolver un saludo.
Lo siguiente era crear un nuevo proyecto flex y empezar a experimentar. Para mi sorpresa la cosa fue realmente facil.
A través del Sr Google encontré un articulo (no recuerdo donde) que indicaba como conectar flex con remoting con lo que saqué la siguiente clase.
-
package {
-
-
import flash.net.NetConnection;
-
import flash.net.ObjectEncoding
-
-
public class RemotingConnection extends NetConnection
-
{
-
public function RemotingConnection( sURL:String )
-
{
-
objectEncoding = ObjectEncoding.AMF0;
-
if (sURL) connect( sURL );
-
}
-
-
public function AppendToGatewayUrl( s : String ) : void
-
{
-
//
-
}
-
-
public function AddHeader() : void
-
{
-
}
-
-
public function ReplaceGatewayUrl() : void
-
{
-
}
-
-
}
-
}
Una vez creada la clase dentro de nuestro proyecto creamos el siguiente archivo mxml:
-
<?xml version="1.0" encoding="utf-8"?>
-
<mx :Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*">
-
</mx><mx :VBox width="100%" height="100%">
-
</mx><mx :HBox>
-
<mx :Label text="Escribe tu nombre"/>
-
<mx :TextInput id="entrada" width="282"/>
-
<mx :Button label="Saludar" height="20" click="realizarLlamada(entrada.text)" />
-
</mx>
-
<mx :TextArea width="467" height="76" id="salida"/>
-
-
<mx :Script>
-
<![CDATA[
-
import mx.managers.CursorManager;
-
public var gateway : RemotingConnection;
-
public function realizarLlamada(_quien:String) :void{
-
gateway = new RemotingConnection( "http://www.alexdw.com/flashservices/gateway.php" );
-
//gateway = new RemotingConnection( "http://localhost/flashservices/gateway.php" );
-
CursorManager.setBusyCursor();
-
gateway.call( "HolaMundo.saludar", new Responder(ok,ko),_quien);
-
}
-
public function ok(o:Object) : void {
-
CursorManager.removeBusyCursor();
-
salida.text =o.toString()
-
}
-
public function ko(o:Object) : void {
-
CursorManager.removeBusyCursor();
-
salida.text = "Se produjo un error al hacer la llamada al metodo"
-
}
-
]]>
-
</mx>
Compilamos el proyecto y ya tenemos nuestro primer proyecto en flex 2.0 y amfphp
Ver ejemplo (necesario tener flash player 8.5)
Descargar codigo fuente
Si ven algo extraño o no comprenden algo.. no duden en dejar un comentario
Go Flex! at on 24 May 2006 at 4:04 am
[...] Creo que hay que mirar detalladamente este articulo de Zend y AMFPHP. [...]
AlexdwBlog() » Blog Archive » Componente RemoteObject para AMF0 en Flex 2Consultor / Desarrollador web on 25 Oct 2006 at 7:46 pm
[...] Siguiendo los servicios que utilizamos en nuestro antiguo Hola mundo, nuestro mxml quedarÃa asÃ: < ?xml version=”1.0″ encoding=”utf-8″?> < ![CDATA[ import mx.rpc.events.*; import mx.controls.Alert; private function llamada(s:String):void { HM.saludar(s); } private function ok( event:ResultEvent ):void { Alert.show(event.result.toString()); } public function ko( event:FaultEvent ):void { Alert.show("No se pudo acceder al servicio"); } ]]> // [...]