Community Pick: Many members of our community have endorsed this article.

Flash as a UI: Integration with HDP Applications

Flash has evolved over the years to where it has become a masterful tool for displaying content screen.  It has excellent layout placement, UI precision as well as rendering capabilities. This, along with the great filters, makes it ideal for User Interface development.

On the other hand, languages like C#, VB, VB6 and Java are very strong from a programming point of view.  Memory handling, disk and shell interaction, interaction with the OS and now more recently web services are better handled by heavy-duty developer platforms (HDP).  But the HDP have typically lacked a pretty graphical UI.  A complex user interface does not have to NOT look chic.

The midway -- a combination of using Flash UI for a HDP app -- has a lot of potential in store.  A probable contender is Adobe AIR, but it would lose out owing to the fact that legacy applications are still on the HDP (the developers lobby!). Also, AIR may be (at least initially) viewed as, not sturdy enough for HD applications. Let's look at the "Flash UI for a HDP app" approach.

Below, I am posting a liunk to a sample application of the flash Dial component used from within a C# app. During this exercise, I have learned a few good things. Flash can easily be used as a frontend for a traditional application written in .NET or Java.

The problem has always been the interaction of the HDP with Flash. The common (unwilling crime) has been taking the "SetVariable" route.  Here, we update a variable from outside Flash and wait for it to detect the change asynchronously. The "ChangeVariable" event is fired and all the processing is done within Flash without an active feedback back to the HDP app. This seems more of a HACK rather than a solution.

ASYNCLong awaited, there is now a mechanism to run an operation synchronously from a HDP app to Flash and back.  It is done through "ExternalInterface" and can be smoothly called from HDP as well as JavaScript.

SYNC1- or -
SYNC2Here is an example project:
that has been created to demonstrate the above in .NET using an earlier created Flash component. Google out "ExternalInterface Flash Samples" for links that will help you in understanding the concepts.

Dial (Gauge) component
Another big advantage of using a Flash UI is that it is usable both in desktop applications as well as web apps.  You develop a single UI... and it is deployable both on desktop and web; it looks and interacts exactly the same way.  Sometime back, I came across a paper (PDF report) done around this area (* link updated below) that talks about Flash as a frontend.  Go ahead, indulge... You can even afford to keep f-in-box aside and start on your own!

To sum up, Flash needs to be seriously tried as a front-end for complex, enterprise "user interaction intensive" applications like ERP, industrial automation, simulation, etc. I foresee frameworks, interface layers and design templates in the Open Source being developed to support and enhance such initiatives. A Flash UI could give a product company that small winning oomph over competition.

Here is the PDF file: Macromedia Flash and VB: A Potent Combination that I mentioned above.

This article was published previously in my blog:

Comments (0)

Have a question about something in this article? You can receive help directly from the article author. Sign up for a free trial to get started.