Taking advantage of the Adobe YouGC Contest i decided to realize my personal submission focusing on the innovation introduced by adobe over the last years (no more than 2-3 after all).
Adobe Air Api interaction and the software development process was off course the picked topic!
I decided to recreate the well know (off course for the mac users only
) photo booth. If you are a window user or a linux user, you will find in this application probably a good replacement to the lack on your platform (however keep in consideration the idea to switch to mac).
Back to the submission, some interesting consideration on the workflow behind the realization:
1) Custom Interface.
I’m a flash developer, and i’m still convinced that the Catalyst – Flash Builder workflow isn’t optimized enought, so i prefeared to go straight to the old couple Photoshop + Flash cs4.
The entire design process took me around 3 hours. Including the logotype, the icon and the gui. I divided all in a well organized layers and groups,avoiding the use of masks and trying to keep in mind that i would import all in flash. Should sounds really exciting the small amount of hours needed for this phase, and the optimization on the import of the psd file (filters and text i still editable after import) is really useful, this is the props of having a giant as adobe behind, and looking to the cs5 preview looks like the path on integration inside creative suite will rise to an higher level. Perfect!
2) AIR features
For those who don’t know air bring the as3 knowledge from flash player to the desktop runtime, in few words, bring the web on your desktop. In this case we take advance also of the additional api that air offer, in particular the possibilities of interact with the operative system (open, reading and writing files), and the chance to drag file from application to desktop.
The first is quite common to all the air developer, if you are interesting on how to interact with the filesystem just take a look to the flash.filesystem package, and you will easily find how streams works in air.
The second feature is a little bit tricky, since usually all the use case assume that the user drag a file from the desktop to the application, and rarely the viceversa, i spend a bit of time on finding a solution to let the user drag the thumbs inside the software to desktop, or every window that display a directory, transforming the image in a jpg valid file.
Clipboard object helped me a lot on doing this! Clipboard object is much useful that I initially suppose to be; paring with the bytearray can esily take you to another level!
3) Image manipulation!
this is probably the hot spot of the application, bitmap manipulation pixel by pixel. The main object in the as3 to handle pixels is BitmapData. This class has build in methods for creation and manipulation pixel data.
This will let us:
Manipulate each Pixel with getPixel(x,y) setPixel(x,y) getPixels(rect:Rectangle) returns a ByteArray, setPixels(rect:Rectangle,bytes:ByteArray).
Copying Pixels with clone(), copyPixels(), copyChannel(), draw()
Other interesting things such as applyFilter(), colorTransform(), compare(), and the cool treshold().
This will help us creating such interesting filter, that reproduce lots of the most famous photoshop’s filters. I promise i will come back on this topic since there’s lot of interesting things to do with pixels.
After manipulating pixmap data, you feel the needs to store in a bitmap with the draw(), and save it to an useful file for the user.
Adobe developed officially a library that apply the jpg encoding process to bitmap, returning a byteArray. For sure i will come back on this to a specific topic.
4) Update manager system
This take me the longer time. I tried to implemented the ApplicationUpdater included in the 1.5 release of adobe Air, but i quickly felt uncomfortable, at the end i result with my own vision of an application update manager.
In short we should:
- Determine the update version string for your application (the new version you will be updating to)
- Download the correct version of that AIR application to local computer (preferably in the application resource directory)
- Create an instance of the Updater class
- Call the update method of the Updater class
- AIR will shut down your AIR application, install the new version, and then restart the application
5) The missing list
I decided to release the 1.0 version without some interesting featuring i planned at the begin such Video recording, mashup with social networks for direct upload, preview of thumbs into application, and so on.
They are all on the to do list, and probably will comes in the future release, and any other requests are welcome
This article cover a little part of the entire process, but it should give you an overall idea of developing on the flash platform.
Following the link to the application. Adobe air 1.5 runtime is needed.

[...] FlashIt! an Adobe Air version of the well know Apple Photo Booth | Nicola Bortignon [...]
[...] Link: FlashIt! an Adobe Air version of the well know Apple Photo Booth … [...]
cool app nic!
is there any way to add own custom filters?
Hola pg!
Actually no, but it would be an interesting new feature, looking forward to add it.
in the meantime i hope you’ll take parts on this http://www.nicolabortignon.com/?p=39“