Ich habe ein paar Remote-Objektmethoden, auf die ich je nach Kontext unterschiedlich reagieren möchte, aber ich würde lieber nicht eine Reihe von verschiedenen RemoteObject-Aliasen einrichten. Irgendwelche Ratschläge dazu? Etwas Hintergrund:Flex RemoteObject - Behandlung mehrerer Anfragen
Angenommen, ich habe eine Admin-Anwendung, die Verkaufsstatistiken auf verschiedene Arten anzeigt. Die Remotemethode sieht folgendermaßen aus:
<mx:RemoteObject id="rpt" destination="AMFServer">
<mx:method name="getSalesStats" fault="getSalesStatsFault(event)"
result = "getSalesStatsSuccess(event)" />
</mx:RemoteObject>
Die Methode getSalesStats verwendet eine Mitarbeiter-ID und einen Verkaufstyp als Argumente. Sie würden es nennen mag:
rpt.getSalesStats(120, "peanuts");
public function getSalesStatsSuccess(e:ResultEvent):void {
salesdata:ArrayCollection = e.result.rows as ArrayCollection;
salesGraph.dataProvider = salesdata;
salesGraphPanel.title = "Peanut Sales, 1990";
}
Ich möchte in verschiedenen Kontexten zum Aufrufen dieser Methode in der Lage sein, manchmal das Ergebnis in ein Diagramm zu senden und manchmal zu einem Datagrid; Ich möchte in der Lage sein, den Titel und den Typ des Diagramms je nach den Wünschen des Benutzers zu ändern. Etwas von dem, was ich will, kann erreicht werden, indem man die vom Server zurückgegebenen Daten auswertet; Das Objekt enthält den Berichtsnamen, sodass ich diesen Wert auswerten kann. Aber einige Dinge müssen sich ändern, basierend auf mehr als nur, was ich vom Server bekomme. Wenn dies ein synchroner Anruf wäre, wäre es einfach; Ich würde so etwas wie:
function buttonOneClick():void {
myData1:ArrayCollection = getSalesStats(120, "peanuts");
myChart.dataProvider = myData1;
}
function buttonTwoClick():void {
myData2:ArrayCollection = getSalesStats(120, "cashews");
myDataGrid.dataProvider = myData2;
}
Ich mag würde etwas durch die Remote-Methode, um die Reaktion Funktion zu übergeben, wie:
rpt.getSalesStats(120, "peanuts", "clicked button one");
aber natürlich wirft einen Fehler, da der Server doesn Ich will das letzte Argument nicht. Irgendwelche Gedanken? Ich werde klären, ob das verwirrend ist.
Ich würde antworten, dass ich nicht viel Kontrolle über den serverseitigen Java-Code habe, aber natürlich sind diese Methoden nur die AMF-Gateway-Aliase, also könnte ich eine Menge davon erstellen. der Einfachheit halber könnte ich sie alle an die gleiche Ergebnisfunktion senden und evaluieren event.target.name, um zu sehen, welche Methode aufgerufen wurde. Das könnte die Dinge überschaubar halten, da es viele Benutzerinteraktionskombinationen geben wird, also viele dieser Methoden. – SkippyFlipjack