I changed a few things and suddenly the inaccessable method works again.
Boy, fun. I guess I'm embracing the 'adapter' construct for emulating anonymous classes, but I wish I wasn't. I have half an idea to start over from scratch and write a very actionscripty dobj/services/receiver system that ends up looking very different on the client but still speaks to the server in the same way. Probably things would just get more and more complex until I was back here. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3983 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
@@ -1,35 +0,0 @@
|
||||
package com.threerings.presents.client {
|
||||
|
||||
import com.threerings.presents.client.InvocationDirector;
|
||||
import com.threerings.presents.data.ClientObject;
|
||||
import com.threerings.presents.dobj.DObject;
|
||||
import com.threerings.presents.dobj.ObjectAccessError;
|
||||
import com.threerings.presents.dobj.Subscriber;
|
||||
import com.threerings.presents.Log;
|
||||
|
||||
/**
|
||||
* This class is used by the InvocationDirector to subscribe
|
||||
* to the client object.
|
||||
*/
|
||||
public class ClientSubscriber implements Subscriber
|
||||
{
|
||||
public function ClientSubscriber (invdir :InvocationDirector)
|
||||
{
|
||||
_invdir = invdir;
|
||||
}
|
||||
|
||||
// documentation inherited from interface Subscriber
|
||||
public function objectAvailable (obj :DObject) :void
|
||||
{
|
||||
_invdir.gotClientObject(obj as ClientObject);
|
||||
}
|
||||
|
||||
// documentation inherited from interface Subscriber
|
||||
public function requestFailed (oid :int, cause :ObjectAccessError) :void
|
||||
{
|
||||
_invdir.gotClientObjectFailed(oid, cause);
|
||||
}
|
||||
|
||||
protected var _invdir :InvocationDirector;
|
||||
}
|
||||
}
|
||||
@@ -16,6 +16,7 @@ import com.threerings.presents.dobj.InvocationNotificationEvent;
|
||||
import com.threerings.presents.dobj.InvocationRequestEvent;
|
||||
import com.threerings.presents.dobj.ObjectAccessError;
|
||||
import com.threerings.presents.dobj.Subscriber;
|
||||
import com.threerings.presents.dobj.SubscriberAdapter;
|
||||
|
||||
import com.threerings.presents.data.ClientObject;
|
||||
|
||||
@@ -35,7 +36,8 @@ public class InvocationDirector
|
||||
_omgr = omgr;
|
||||
_client = client;
|
||||
|
||||
_omgr.subscribeToObject(cloid, new ClientSubscriber(this));
|
||||
_omgr.subscribeToObject(cloid, new SubscriberAdapter(
|
||||
this.gotClientObject, this.gotClientObjectFailed));
|
||||
}
|
||||
|
||||
public function cleanup () :void
|
||||
@@ -306,7 +308,7 @@ public class InvocationDirector
|
||||
}
|
||||
|
||||
/**
|
||||
* Called by the ClientSubscriber helper class when the client object
|
||||
* Called by the ClientObject SubscriberAdapter when the client object
|
||||
* has been returned by the server.
|
||||
*/
|
||||
internal function gotClientObject (clobj :ClientObject) :void
|
||||
@@ -320,7 +322,7 @@ public class InvocationDirector
|
||||
}
|
||||
|
||||
/**
|
||||
* Called by the ClientSubscriber helper class when it fails.
|
||||
* Called by the ClientObject SubscriberAdapter when it fails.
|
||||
*/
|
||||
internal function gotClientObjectFailed (
|
||||
oid :int, cause :ObjectAccessError) :void
|
||||
|
||||
Reference in New Issue
Block a user