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

20.16. Receiving Typed Objects with ASP.NET

Problem

You want to be able to handle typed object parameters sent to a .NET back end (an ASPX page, DLL method, or web service method).

Solution

Create a .NET class with the same name as the name to which the ActionScript class is registered. The .NET Flash Remoting gateway automatically converts the ActionScript typed object to an object of the corresponding .NET type.

Discussion

When you pass a typed object to a .NET back end from a Flash movie, the .NET Flash Remoting gateway looks for a .NET class with the same name as the registered class name of the ActionScript object and tries to convert the ActionScript object to that .NET type. Therefore, you need to create a .NET type to correspond to each of the registered ActionScript classes.

For example, in the Flash movie, define the following ActionScript class and register it using the name “MyClass”:

function MyClass(a, b) {
  this.a = a;
  this.b = b;
}
MyClass.prototype.a;
MyClass.prototype.b;

Object.registerClass("MyClass", MyClass);

Then create a .NET class with the same name and the same properties. The .NET class should have a constructor that requires no parameters.

public class MyClass {
  
  public string a;
  public string b;

  public MyClass(  ){}
}

Then, so long as the .NET MyClass is accessible to the .NET service function (be it a DLL method, an ASPX page, or a web service method), the service function can accept a parameter of type MyClass. Here is an example of a DLL method that accepts a ...

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