views:

54

answers:

1

Adobe Flash has some interesting and, at times, frustrating security rules that prevent lots of things from happening, like writing files to disk.

Swf Studio and Flash Jester allow Flash to "break out" of the security sandbox that prevents file IO operations. How are these programs written? Is this something that I can do in any of the .NET languages? Is there an API that I can use? (I'd rather not pay these guys money that I can't afford...)

Do these guys use an undocumented API? (If yes, how can I learn about the said API?)

+1  A: 

Yes, I would say that you can do it yourself in .Net, and it's not very hard to get the grip of.

I don't know exactly how Swf Studio and Flash Jester do it, how they provide an API for ActionScript, but if what you are after is to build a Flash wrapper that enables file IO and such (in a desktop environment, not a web browser), it can be done using ActionScript's ExternalInterface.

I have done some stuff like that myself, a couple of years ago, for a digital signage application built on .Net/C# and Flash. Basically the Flash Player ActiveX control and the container application communicates using a protocol base on XML-RPC. Here are some basic examples:

http://blog.another-d-mention.ro/tag/external-interface/

Lars
Wrappers is what I thought of initially, but I didn't realize that that's the way they would do it. How then do they have custom Actionscript Classes? Also, when embedding an ActiveX control in a .NET program, does it need to be redistributed with the app?
Moshe
I don't know how they integrate their custom ActionScript classes. Or if the ActiveX needs to be redistributed, sorry. In the project I worked on, Flash Player was installed separately, as part of the overall configuration (it was in a controlled environment, dedicated computers in shops). If the end user can be required to install Flash Player (like on the web), I guess that would work, but I'm not sure.
Lars
Ok. Thanks. About the distribution thing - have you done things with other ActiveX controls that did or did not require redistribution?
Moshe