A revolutionary application for the Flash Platform, I'm proud to announce that I have a VNC client written for Flash Player 8.5.
Like everyone else, I've been busy experimenting with the alpha bits available at Macromedia labs. I have quite a few ActionScript 3 and Flex 2 projects in the works, FlashVNC being just the tip of the iceberg.
The new Player is incredible, and enables a whole new breed of applications to be built that simply weren't possible before. The JIT-compiled speed of ActionScript 3 coupled with new built-in classes that Flash Player 8.5 bring to the table is an incredible combination. Throw in the Flex 2 framework to rapidly create interfaces, and it really is a winning combination.
Now, I must confess, FlashVNC is not 100% complete yet, so I'm not ready to show a "live" demo. However, I've come quite a long way and am far enough along now that the finished product is right around the corner. Below is a screenshot of the working prototype:
Key Features of FlashVNC:
- flash.net.Socket - binary socket allows connection to a TightVNC server. I've implemented the RFB protocol to establish 2-way communication between my FlashVNC client and a TightVNC server that I'm testing against.
- DES encryption - it wasn't fun at all, but I've implemented the Data Encryption Standard algorithm for ActionScript 3. Of course this is in a reusable library, so it's not limited to just my FlashVNC project, but part of the RFB protocol is an authentication challenge that requires the use of DES.
- BitmapData - the remote screen is drawn via low level pixel manipulation. This is a feature available in Flash Player 8, but, well.. see the next point.
- ActionScript3 - this wouldn't be possible without the speed of ActionScript 3. The amount of calculations being performed to update the screen is a testament to how much better AS3 really is over AS2.
- Better handling of binary data - in general, Flash Player 8.5 makes working with binary data lot easier. The new int and uint datatypes, along with flash.util.ByteArray have really aided in the creation of FlashVNC.
Of course, it goes without saying that the Flex2 framework enabled me to create an interface for FlashVNC very quickly. I was able to integrate a BitmapData instance with a Flex container, which really helped to make this application possible.
Source code should be available through IFBIN's Flex By Example once the application is finished. When I finish the application, I'll post a working demo then as well (instead of just a measly screenshot).
So yeah.. it's been quiet around here lately, and labs is the reason. Wait until you see what else I have in my bag of tricks... I'm not done yet!

