14.17. Invoking Client-Side Functions from the Server

Problem

You want to invoke a client-side function from Server-Side ActionScript.

Solution

Define the client-side function as a method of the client-side net connection object, and then, on the server, invoke the call( ) method on the client object.

Discussion

To invoke client-side functionality from the FlashCom server, you must first define the client-side functionality within a method of the net connection object. Then you can invoke that method from the FlashCom server using the call( ) method of the corresponding client object.

For example, here is a snippet of client-side code (meaning it should be in your Flash movie) that defines a custom method for a net connection object:

myConnection.myCsFunction = function (  ) {
  trace("Method called from server!");
};

Then, in the Server-Side ActionScript (in the main.asc file or other .asc included in main.asc), you can invoke the server-side function, in this case myCsFunction( ), using the call( ) method. You should invoke the call( ) method on the client object that corresponds to the client on which you want to invoke the function. For example, you can invoke the same method in all connected clients using a for statement, as shown here:

for (var i = 0; i < application.clients.length; i++) {
  application.clients[i].call("myCsFunction");
}

See Also

Recipe 14.16 and Recipe 17.6. This chapter has barely scratched the surface of what can be done with FlashCom server and Server-Side ActionScript. ...

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.