Ich verwende ein SharedObject, um eine einfache Chat-App zu erstellen. Das SharedObject wurde ordnungsgemäß erstellt und meine Anwendung konnte das Synchronisierungsereignis erhalten, wenn andere Clients die Daten auf dem SO aktualisieren. Das Problem tritt jedoch auf, wenn meine App versucht, die Daten auf der SO zu speichern, um andere Clients zu signalisieren. Ich habe festgestellt, dass die Daten geändert wurden mit dem folgenden Code:SharedObject: kann Ereignis von anderen Clients empfangen, löst jedoch nach dem Speichern von Daten kein Ereignis aus
trace("before:"+so.data.chatMessage);
so.data.chatMessage = msg.text;
trace("after:"+so.data.chatMessage);
Es wird gesagt „vor: abc“ und „nach: def“. Leider haben keine Clients das Synchronisierungsereignis erhalten, nachdem die Daten auf der SO geändert wurden, einschließlich des Clients, der die Daten selbst geändert hat. Das bedeutet also, dass dieser Client die Nachricht eines anderen Clients empfangen kann, aber sich selbst keine Nachricht erhält.
Jeder hat solche Probleme schon einmal gesehen? Danke, Jack
Haben Sie 'so.flush()'? – Vesper
Das wusste ich nicht. Der Aufruf von so.flush führte zu "Fehler: Fehler # 2130: SharedObject kann nicht gelöscht werden." Es wurde jedoch kein interner Fehler ausgegeben. So scheint es das Problem war der Flush konnte nicht erfolgreich sein ... Eine Idee, wie könnte passieren? Vielen Dank. –
@Vesper, BTW, habe ich die SO mit GetRemote erstellt, anstelle von getLoal, muss ich noch so.flush() aufrufen? Ich habe die Dokumentation durchgelesen und es war mir nicht sehr klar, ob der Aufruf flush() sowohl für getLocal() als auch für getRemote() SOs galt. –