Comunidad de diseño web y desarrollo en internet online

Disparar Eventos desde objetos

Citar            
MensajeEscrito el 25 Jul 2005 04:43 pm
Disparar Eventos desde objetos

Estoy creando una aplicación en flash para manejar una base de datos.
Tengo los objetos que representan la base de datos, los objetos de acceso a datos y los objetos que manejan la interfaz grafica.

Es una típica aplicación separada en capaz en flash + amfphp + objetos en php.

Hasta todo bárbaro no tengo problemas, todo funciono maravillosamente.

El tema esta en que a los objetes los quiero dotar de poder generar eventos como los objetos/clases de flash MovieClipLoader que cuando ocurre algo manda un mensaje y uno lo implementa como mejor le parezca.

El punto como logro poder disparar esos mensajes. y como debería ser el código para interpretarlos? con addListener?

Por dadot2

3 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 26 Jul 2005 03:53 am

Código :

/**
*   Extiendo un poco mas la explicacion para ser mas claro en cual es la dificultad
*   tenemos la clase Cliente, la clase cliente instancia a la clase amfConnect
*   que es la que maneja el web service que es amfphp.
*   la clase u objeto que crea la clase cliente es la que conoce la interfaz 
*   grafica , por ende la que sabe donde cargar los valores retornados 
*   de la base de datos.
*   Quiero poder establecer la comunicacion entre capas mediante eventos,
*   pero hasta ahi es donde llego mi conocimiento de flash.
*   Mi idea es poder procesar los eventos de distintas maneras,  
*   dependiendo de quein intancie la clase.
*   
*/
import amfConnect; //autor: Enrique Chavez aka Tmeister
class Cliente {
    private var nombre:String;
    private var direccion:String;
    private var telefono:String;
    private var oWS:amfConnect;
    
    function Cliente() {
        //para manejar el web service
        this.oWS = new amfconnect("http://localhost/flashservices/gateway.php"); 
        this.setService("nombreServicio");
    }
    
    public function BuscarCliente(valor:String):Void {
        this.doQuery("buscarcliente", handleBuscarCliente, valor);
    }
    
    private handleBuscarCliente(re:ResultEvent):Void{    
      //Recivo el evento
        if (re.result){
            //Aca es donde quiro disparar un evento
            //para que lo procese otro objeto o una funcion
            //o quien halla instanciado la clase Cliente

      } else {

      }
        
    }
}

Por dadot2

3 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 30 Jul 2005 01:27 am
/**
* Solucion
*
*/
import amfConnect; //autor: Enrique Chavez aka Tmeister
import mx.events.EventDispatcher;
class Cliente {
private var nombre:String;
private var direccion:String;
private var telefono:String;
private var oWS:amfConnect;
/** Variables de la Clase */
static var version:String = "1.0";
static var symbolName:String = "Cliente";
static var symbolOwner:Object = "Cliente";
/** Constructor */
function Cliente() {
mx.events.EventDispatcher.initialize(this);
//para manejar el web service
this.oWS = new amfconnect("http://localhost/flashservices/gateway.php");
this.setService("nombreServicio");

}
function dispatchEvent() {}
function addEventListener() {}
function removeEventListener() {}

public function BuscarCliente(valor:String):Void {
this.doQuery("buscarcliente", handleBuscarCliente, valor);
}

/** Eventos que dispara la clase */
[Event("Cliente_handleBuscarCliente")]
private handleBuscarCliente(re:ResultEvent):Void{
/** Recivo el evento */
if (re.result){
var eventObj:Object = {target:this, type:"Cliente_handleBuscarCliente"};
eventObj.valor = true; //Para saber que paso
eventObj.registros = re.result; //Cargo los datos
dispatchEvent(eventObj); //Disparo el evento
} else {
/** Creo el Objeto del evento */
var eventObj:Object = {target:this, type:"Cliente_handleBuscarCliente"};
eventObj.valor = false; //Para saber que paso
dispatchEvent(eventObj); //Disparo el evento
}

}
}





/**
* Forma de Usarlo
*/


import Cliente;
var Cliente_obj:Cliente = new Cliente();
/**
* Modelo de Eventos de las clase Cliente
*/
var oEventos_ael:Object = new Object();
oEventos_ael.Cliente_handleBuscarCliente = function(eventObj:Object) {
//Codigo del evento
if(eventObj.valor) {
//Devolvio True
trace(eventObj.registros);
} else {
//Devolvio False
}
};
Cliente_obj.addEventListener("Cliente_handleBuscarCliente", oEventos_ael);

Por dadot2

3 de clabLevel



Genero:Masculino  

firefox

 

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