Comunidad de diseño web y desarrollo en internet online

Remoting en flash 9 y Actionscript 3

Citar            
MensajeEscrito el 11 Oct 2007 04:11 pm
Hola, despues de un rato tratando de piratear las librerias de Remoting de Flex y no poder me puse hacer las clases para flash 9... aqui les dejo la clase de conexion a un Servicio.

Código :

/*
Remoting class Action Script 3
*/
package com.data {
   import flash.events.Event;
   import flash.events.NetStatusEvent;
   import flash.net.NetConnection;
   import flash.errors.IllegalOperationError;
   import flash.net.Responder;
   import flash.net.ObjectEncoding;
   public class Remoting extends NetConnection {
      /*
      Properties Variables
      */
      private var _str_server:String = "";
      private var _str_gateWayPath:String = "";
      private var _str_serviceName:String = "";
      private var _str_netStatusResponse:String = "";
      private var _obj_remotingResoult:Object;
      private var _res_objectResponder:Responder;
      /*
      Object Variables 
      */
      public static var obj_remotingInstance:Remoting;
      /*
      getInstace Remoting
      */
      public static function getInstance():Remoting {
         if (obj_remotingInstance == null) {
            obj_remotingInstance = new Remoting(new Enforcer());
         }
         return obj_remotingInstance;
      }
      /*
      Constructor
      */
      public function Remoting(enforcer:Enforcer = null):void {
         super();
      }
      /*
      initialize the component
      */
      public function initialize(gatewayString:String, serverString:String = ""):void{
         if(_res_objectResponder == null){
            this.objectEncoding = ObjectEncoding.AMF0;
            _str_server = serverString;
            _str_gateWayPath = gatewayString;
            _res_objectResponder = new Responder(onDataLoaded, onFault);
            this.connect (_str_server + _str_gateWayPath);
            this.addEventListener (NetStatusEvent.NET_STATUS, netStatusHandler);
         } else {
            throw new IllegalOperationError("Remoting already initialized!");
         }
      }
      /*
      Handlers
      Status of the connection.
      */
      private function netStatusHandler (event:NetStatusEvent):void {
         _str_netStatusResponse = event.info.code;
         this.dispatchEvent(new Event("onStatus"));
      }
      /*
      */
      private function onDataLoaded (o:Object):void {
         _obj_remotingResoult = o;
         this.dispatchEvent(new Event("onData"));
      }
      /*
      */
      private function onFault(o:Object):void{
         throw new Error("Error on Service!");
      }
      /*
      Properties
      */
      public function get responder():Responder {
         return _res_objectResponder;
      }
      public function get data():Object{
         return _obj_remotingResoult;
      }
      public function get server():String{
         return _str_server;
      }
      public function set server(serverString:String):void{
         _str_server = serverString;
      }
      public function get gateway():String{
         return _str_gateWayPath;
      }
      public function set gateway(gatewayString:String):void{
         _str_gateWayPath = gatewayString;
      }
      public function get service():String{
         return _str_serviceName;
      }
      public function set service(serviceString:String):void{
         _str_serviceName = serviceString;
      }
   }
}
internal class Enforcer {
}


Asi se usa:

Código :

import com.data.Remoting;
var r:Remoting = Remoting.getInstance();
r.initialize("flashservices/gateway.php","domain");
r.call("clase.metodo", r.responder, "3"); // 
r.addEventListener("onData", upaleFunciona);
/* ---------------------------------------------------------------------------------- */
function upaleFunciona(e:Event):void {
   var o:Object = r.data; 
   for each (var s:* in o) {
      trace(o + " ------- " + s);
      for each (var t:* in s) {
         trace(t + " >>> " + s);
      }
   }
}


Esta es solo la clase de conexion...

Saludos

Por bipsa

628 de clabLevel

1 tutorial
1 articulo

Genero:Masculino  

Colombia

safari
Citar            
MensajeEscrito el 11 Oct 2007 06:38 pm
Si se usa WebORB no se necesita esta linea

Código :

this.objectEncoding = ObjectEncoding.AMF0;

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

firefox
Citar            
MensajeEscrito el 11 Oct 2007 06:50 pm
la probaste con webOrb?

Por bipsa

628 de clabLevel

1 tutorial
1 articulo

Genero:Masculino  

Colombia

safari
Citar            
MensajeEscrito el 19 May 2008 12:37 am
Hola lo primero que me parece muy util, tu aplicacion, pero hay algo que me trae de cabeza:
NetStatusEvent
no me funciona el NetStatusEvent, en ningun momento me salta.
Gracias-

Por alvaro_touzon

11 de clabLevel



 

firefox
Citar            
MensajeEscrito el 19 May 2008 05:34 am
:o yo utilizo otra clase de remoting que le agregue tambien NetStatusEvent pero tampoco me anda tengo ese mismo problema. no tira nada y la clase esta importada y todo pero no lanza eventos. :(

Por phoxer

Claber

827 de clabLevel

4 tutoriales

Genero:Masculino  

Ing en Sistemas

msie7

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.