O'Reilly logo

Actionscript Cookbook by Joey Lott

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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, ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required