Esta es la primera vez que escribo en el Foro. En primer lugar felicitaros por esta pagina en la cual e encontado cosas muy utiles.
Mi problema es el siguiente:
Estoy haciendo un programa en Flash en el cual necesito un login para identificar si es usuario,profesor o administrador en una aplicacion multiusuario.Para ello e echado mano del tutorial
Sesiones en Flash Remoting,Php y AMFPHP[. Pero tengo un problema, he creado el Sesions.as pero no se si esta bien,el codigo es el siguiente:
import mx.services.Log;
import mx.rpc.RelayResponder;
import mx.rpc.FaultEvent;
import mx.rpc.ResultEvent;
import mx.remoting.Service;
import mx.remoting.PendingCall;
import mx.remoting.debug.NetDebug;
class Sessions
{
//Constantes ------------------------------------------------------
//Tipos de CallBack
public static var WRITE = 1;
public static var READ = 2;
public static var READALL= 3;
public static var SESSID = 4;
public static var ERASE = 5;
//Variables ------------------------------------------------------
public var onWrite:Function;
public var onRead:Function;
public var onReadAll:Function;
public var onSessid:Function;
public var onErase:Function;
private var service2:Service;
private var loG:Log;
//Constructor ----------------------------------------------------
function Sessions()
{
loG= new Log(Log.DEBUG, "logger");
loG.onLog = function(message:String):Void
{
trace("AMF --> " + message);
}
NetDebug.initialize();
service2 = new Service("http://localhost/phpFlash/remoting/gateway.php", loG, "sessions", null, null);
}
//Llamadas a las Funciones del Servicio ----------------------------------------------
function write(key,value):Void
{
var pc:PendingCall = service2.write(key,value);
pc.responder = new RelayResponder(this, "_onWrite", "_onAmfError");
}
function read(key):Void
{
var pc:PendingCall = service2.read(key);
pc.responder = new RelayResponder(this, "_onRead", "_onAmfError");
}
function readAll():Void
{
var pc:PendingCall = service2.readAll();
pc.responder = new RelayResponder(this, "_onReadAll", "_onAmfError");
}
function sessid():Void
{
var pc:PendingCall = service2.sessid();
pc.responder = new RelayResponder(this, "_onSessid", "_onAmfError");
}
function erase():Void
{
var pc:PendingCall = service2.erase();
pc.responder = new RelayResponder(this, "_onErase", "_onAmfError");
}
//------------------------------------------------------------------
//Función de CallBack ------------------------------------------------
function callBack (fc:Number, re:ResultEvent):Void
{
switch(fc)
{
case WRITE:
if(onWrite != null)
onWrite(re);
else
{
trace("");
trace("Función 'onWrite' no declarada");
}
break;
case READ:
if(onRead != null)
onRead(re);
else
{
trace("");
trace("Función 'onRead' no declarada");
}
break;
case READALL:
if(onReadAll != null)
onReadAll(re);
else
{
trace("");
trace("Función 'onReadAll' no declarada");
}
break;
case SESSID:
if(onSessid != null)
onSessid(re);
else
{
trace("");
trace("Función 'onSessid' no declarada");
}
break;
case ERASE:
if(onErase != null)
onErase(re);
else
{
trace("");
trace("Función 'onErase' no declarada");
}
break;
}
}
//Manejadores de las respuesta de Remoting
private function _onWrite(re:ResultEvent):Void
{
callBack(WRITE,re);
}
private function _onRead(re:ResultEvent):Void
{
callBack(READ,re);
}
private function _onReadAll(re:ResultEvent):Void
{
callBack(READALL,re);
}
private function _onSessid(re:ResultEvent):Void
{
callBack(SESSID,re);
}
private function _onErase(re:ResultEvent):Void
{
callBack(ERASE,re);
}
//Manejo de los errores de Remoting
private function _onAmfError( err:FaultEvent ):Void
{
NetDebug.trace({level:"None", message:"Error: " + err.fault.faultstring });
}
}
ademas ahora no me da ningun error pero tampoco parece que haga nada, he probrado con Trace para saber por donde va pero cuando llama desde fash al session.sessid(), me pone que se ha invocado correctamente pero no hace nada.
Si alguien dabe como solucionar el problema se lo agradeceria
O si alguien tiene idea como puedo hacer una sesion desde flash para un usuario,administrador.
Gracias