14.16. Invoking Server-Side Functions from the Client Movie

Problem

You want to invoke a server-side function from a client movie.

Solution

In the .asc file (main.asc or another .asc file included in main.asc), define the server-side function as a method of the client object. Then, from the client, invoke the call( ) method from the net connection object.

Discussion

To invoke a server-side function from a client, you must first associate the server-side function with the connected client object. You can do this by assigning the function as a method of the client object. Generally, this is done within the onConnect( ) method, as follows:

application.onConnect = function (newClient) {
  application.acceptConnection(newClient);
  newClient.ssFunction = function (  ) {
    // Do something here.
  };
};

Then, from the client movie you can use the call( ) method to invoke the server-side client method:

// Invoke the server-side ssFunction(  ) method from a net connection object.
myConnection.call("ssFunction");

If you want the server-side method to return a value to the client, you must define a response object on the client. A response object is an object derived from the Object class for which you have defined an onResult( ) method. The value returned from the server-side method is passed to the client-side onResult( ) method as a parameter.

myResponse = new Object(  );
myResponse.onResult = function (result) {
  // Do something with result here.
};

Once you have defined the response object on the client, ...

Get Actionscript Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.