| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Sep 2008
Beiträge: 8
| WDSL methode noch mal aufrufen
hi leute hab mich mal wieder mit flash befasst... vileicht kann mir ja jemand helfen, da ich hier was nicht so ganz verstehe. ich erstelle in flash ein webservice und rufe meine methode "getData" mit einem pendingcall object auf. das erste mal erhalte ich auch ein xml das ich parsen kann. nun ist es aber so, das ich die daten in einem bestimmten zeitintervall wieder vergleichen/aktualisieren möchte, da die sich ja ändern können. dafür verwende ich setInteval, der die selbe funktion mit dem methodenaufruf einfach noch mal abarbeitet. das wdsl möchte ich natürlcih nicht jedesmal neu erstellen weil das kann er sich ja merken, oder das sollte flash sich merken! aber irgendwo verliert flash den bezug zu dem webservice object und kann nicht mehr auf das pendingcall zugreiffen, da das ja noch auserhalb von function recall definiert werden muss. hat jemand eine idee, lösung um einen recall auf methoden des wdsl zu machen? ohne das wdsl jedesmal neu zu erstellen... der code: import mx.services.*; var myWS_obj:WebService = new WebService(wsdlURI); var request:PendingCall; function reCall(){ trace("--[ R E C A L L ]--"); clearInterval(_root.interval_GetData); _root.request = _root.myWS_obj.getData(); _root.interval_GetData = setInterval(_root,'reCall',10000); } reCall(); request.onResult = function (result){ var oaXML:XML = new XML(); oaXML = result.toString(); oaXML.ignoreWhite = true; _root.oaInfo = new XML2Object().parseXML(oaXML); init(); } myWS_obj.onLoad = function(){ trace("--[ O N L O A D ]--"); trace("\n SOAP Request: " + ws.request); trace("\n SOAP Response: " + ws.response); trace("\n Data result: " + result); trace("\n Data getOutputValue(0): " + ws.getOutputValue(0) ); trace("\n Data getOutputValues: " + ws.getOutputValues ); } request.onFault = function (Error:Object){ trace("faultcode "+Error.faultcode+"\n faultstring "+Error.faultstring+"\n detail "+Error.detail+"\n element "+Error.element+"\n faultactor "+Error.faultactor); }; |
| | |
| | #2 (permalink) |
| °.oO°O.o°.oO.o°O Registriert seit: Jun 2005 Ort: CH
Beiträge: 1.490
|
Ich vermute mal, dass es daran liegt, dass bei jeder erneuten Zuweisung des zurückgegebenen PendingCall-Objekts an request auch die onResult und onFault-Handler überschrieben werden. (Der WebService liefert ja jedes Mal ein neues PendingCall-Objekt für jeden Aufruf zurück.). Das heisst, du müsstest jeweils nach der erneuten Zuweisung auch die Handler neu zuweisen! ![]() Versuchs mal so: PHP-Code:
__________________ There is no way to happiness, happiness is the way! - Buddha |
| | |
| | #3 (permalink) | |
| Neuer User Registriert seit: Sep 2008
Beiträge: 8
| genial
die idee mit dem überschreiben der handler finde ich sehr gut das funtz übrigens auch super. fettes dankeschön habe vor dem mittag jedoch noch was gelesen, und dachte mir wer lesen kann ist klar im vorteil ![]() Zitat:
| |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |