Zurück   Flashforum > Flash und Server > Flash Remoting

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 17-08-2005, 14:10   #1 (permalink)
Neuer User
 
Benutzerbild von dr_gonzo
 
Registriert seit: Apr 2004
Ort: Pforzheim
Beiträge: 69
RelayResponder mit DefaultFaultFunction unterchiedliche responder?

Hello @ all

Beim immigrieren von FlashRemotingAS1.0 auf FlashRemoting AS2.0 arbeite ich mit dem "RelayResponder"
Beispielcode:
PHP-Code:
var gatewayURL:String "http://...";
var 
meinService:String "sim";
// neue Verbindung
_global.ServerConnection = new Connection();
// zentrale Ergebnis- oder Fehlerverarbeitung
var dataResp:RelayResponder = new RelayResponder(this"ErfolgreichFunktion""FehlerFunktion");
// Erstelle Verbindung zum Gateway
ServerConnection.connect(gatewayURL);
// Definiere Service
var serv:Service = new Service(nullnullmeinServiceServerConnectiondataResp);
// Rufe Methoden auf
serv.getTimeline(); 
Ich habe nun zig Aufrufe aus verschiedenen Klassen/swf's die alle diese eine Connection nutzen. Das Problem ist dass ich nicht in jede einzelne Klasse/Swf eine "FehlerFunktion" haben möchte sondern an EINE Stelle sozusagen eine "GlobaleFehlerFunktion" und die "Erfolgsfunktion" weiterhin in der Klasse ausgewertet werden soll. Allerdings kann ich im RelayResponder immer nur 3 Paramter angeben: RelayResponder ( responder, resultFunc, faultFunc)
Aus ASDoc-Help:
responder: Object - Das Objekt, das die Fehler oder Ergebnisse empfängt
resultFunc: String - Ein String, der den Namen der Funktion angibt, an die das Ergebnis des Servicefunktionsaufrufs weitergeleitet werden sollte
faultFunc: String - Ein String, der den Namen der Funktion angibt, an die eine Fehlerbedingung weitergeleitet werden sollte

=>
Ich kann also nur EINEN "responder" angeben aber ich möchte 2: Einen für meine "Erfolgsfunktion" und einen 2.-ten der immer auf meine "GlobaleFehlerFunktion" zeigt.



Any solution?
thx für Hilfe

MfG Sebastian
dr_gonzo ist offline   Mit Zitat antworten
Alt 17-08-2005, 14:42   #2 (permalink)
Neuer User
 
Benutzerbild von dr_gonzo
 
Registriert seit: Apr 2004
Ort: Pforzheim
Beiträge: 69
ahh mir ist eine Lösung eingefallen:

Ich habe die Klasse RelayResponder.as aus:
C:\Programme\Macromedia\Flash MX 2004\de\First Run\Classes\mx\rpc
kopiert und mit dem Namen: RelayResponderDev.as wieder ins selbe Verzeichnis eingefügt. Folgender Code:
PHP-Code:
//****************************************************************************
//Copyright (C) 2004 Macromedia, Inc. All Rights Reserved.
//The following is Sample Code and is subject to all restrictions on
//such code as contained in the End User License Agreement accompanying
//this product.
//****************************************************************************

import mx.rpc.Responder;

/**
    This is a responder object that relays result and fault calls to a corresponding 
    function on the specified object.

    @tiptext Dispatches results from a method invocation to user defined methods
    @helpid    4491    
*/
class mx.rpc.RelayResponderDev extends Object implements Responder {
    private var 
__obj2:Object;
    
/**
      Constructs an instance of the relay that will call the specified methods 
      for result or fault on a given object. 
      
      @param    resp    Object    Object that will handle the fault or result calls
      @param    resultFunc    String    String containing the name of the function to call, when result is recieved.
      @param    faultFunc    String    containing the name of the function to call, when a fault is recieved.
      @tiptext    Creates a new RelayResponder
      @helpid    4492
    */
    
function RelayResponderDevresp:ObjectresultFunc:Stringresp2:ObjectfaultFunc:String) {
        
super();
        
__obj resp;
        
__onFault faultFunc;
        
__onResult resultFunc;
        
__obj2 resp2;
    }
    
    
/*
       When a fault in recieved, Fault Handler is called. onFault dispatches the fault message.
       @param    fault Object  contains information of the fault recieved. This includes specified code, message, and details
    */
    
function onFaultfault:mx.rpc.FaultEvent ):Void {
        
__obj2__onFault ]( fault );
    }
    
    
/*
      Result Handler is called when a result is recieved. onResult dispatches the result message 
      
      @param    result reference to the result after successfult method invocation
    */
    
function onResultresult:mx.rpc.ResultEvent ):Void {
        
__obj__onResult ]( result );
    }
    
    private var 
__obj:Object;
    private var 
__onFault:String;
    private var 
__onResult:String;

so nun kann ich statt:
PHP-Code:
import mx.rpc.RelayResponder
die Datei:
PHP-Code:
import mx.rpc.RelayResponderDev
nehmen und statt:
PHP-Code:
var dataResp:RelayResponder = new RelayResponder(this"replyObj_getGameStatus""fehlerhaft"); 
mit dem Code:
PHP-Code:
var dataResp:RelayResponderDev = new RelayResponderDev(this"replyObj_getGameStatus"_global.mc"fehlerhaft"); 
Den beiden Ergebnisfunktionen unterschiedliche Instanzen/Classen/SWf's zuweisen (im Bsp this und _global.mc).

Vielleicht kanns ja einer auch brauchen

MfG Sebastian
dr_gonzo ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 03:15 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele