the System layer : written in Haxe and using the Neko API, you can access the local filesystem, databases, network sockets... You can also easily extend its capabilities by writing your own DLL.

the Flash layer : written in Haxe or any other technology capable of producing SWF, you can use this layer to display the graphical interface, handle user interactions, play sound and video...

You can communicate synchronously between theses two layers by using Haxe Remoting, as we will explain in the tutorial.

These two layers are both crossplatform and all you need is the SWHX Boot executable that is initializating the application. For additional information on SWHX's inner workings, refer to the screenweaver.org pages.

As you can see, it's very easy. You can create several windows but each window can only have one Flash object. You can controll all the Flash attributes as you would do when writing HTML by using the setAttribute method.

If it's the first time you are starting the application, you should notice a small lag. This is because when the Flash Firefox Plugin is not found in the current directory, the call to swhx.Plugin.update() will retreive it from Internet first, and save it into the file flashplayer.bin.

This way you don't have to redistribute the Flash Player as part of your application. If the plugin is already in the directory, the application will start immediately.

If you know that the player is already installed somewhere, you can pass the complete path to the dll/bundle containing the flash player when calling swhx.Application.init instead of null.

The SWHX Distribution contains a sample on how you can use SWHX directly from an ActionScript program with the FSCommand function. You just get these calls as events in the System Layer and you can implement them to perform System operations.

If you require more elaborate and synchronous communications, you can use the SWHX Flash API. It is located at <haxelib path swhx>/api/actionscript/AS2 in the SVN source tree. A sample demonstrating its use is at <haxelib path swhx>/samples/6-flash-api. Below are two snippets from the sample, illustrating the front-end and back-end sides:

If your front-end is in ActionScript 3 (i.e. you're using Flash 9 Alpha or Flex 2) then you should use the AS3 version of the API, which is at <haxelib path swhx>/api/actionscript/AS3.Refer to <haxelib path swhx>/samples/9-flash-api-as3 for a sample.

If you download the SHWX Distribution, you will have more samples available in the samples directory. They will demonstrate how to communicate between the System and the Flash layer, and how to handle events.

any additionals Neko DLL that you need, depending on the APIs you are using (mysql.ndll for Mysql database, etc.).

last, Screenweaver HX needs the Flash player Firefox/Netscape plugin to run. If you don't or can't distribute it with you project, Screenweaver will try to download it automatically upon first application launch.

Unless you disable automatic plugin download, you need to distribute "zlib.ndll" as well.

.ndll files need to in the working folder of your application, or should be in a folder that's on the system's search path.

More info on the subject is at:http://screenweaver.org/doku.php?id=tutorials:distribution

Total Size = 430 KB on Windows

Even for a commercial application, you can freely redistribute all theses files since they are covered by the LGPL license.