Creating a custom application updater

In above image you can see the custom application updater interface I have created for my NoteList application. You would see this updater interface only if updated application is available for download. Clicking the ‘Download and Upload’ button downloads updated .air file and updates current application.
Read more, view source code

Simple Notes Manager

Let me introduce to you application I have built for myself – NoteList. It is an Adobe Air app which allows you to manage notes in a simple efficient way. I would say “it is a notepad with a list of notes(text files)”. The application has simple interface: “+” button (add note), “-” button (remove note), sidebar and text area.

I will be happy to tell you that i have been using this application quite often.

You can install application from here: NoteList

Transmitting JSON from PHP to Flex

Learn how to create JSON(JavaScript Object Notation) with PHP and display in Flex application.

Continue reading ‘Transmitting JSON from PHP to Flex’ »

Tracking user presence

Adobe AIR applications can detect if user is actively using a computer. The NativeApplication object dispatches two events:
userIdle event – user is not using a computer,
userPresent event – user is using a computer again.
The following lines of code set the idle threshold to 20 seconds and listen for both the userIdle and userPresent events:

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="" layout="absolute"
    creationComplete="init()" viewSourceURL="srcview/index.html"> 

            private function init():void
                nativeApplication.idleThreshold = 20;
                nativeApplication.addEventListener(Event.USER_IDLE, userIdleHandler);
                nativeApplication.addEventListener(Event.USER_PRESENT, userPresentHandler);

            private function userIdleHandler(event:Event):void

            private function userPresentHandler(event:Event):void


Fizzim – The FSM Design Tool

I found Fizzim: The Finite State Machine Design tool. Fizzim is a FREE, open-source GUI-based FSM design tool. The GUI is written in java, the backend code generation is written in perl for portability and ease of modification. It is very easy to use, i created fsm diagram for LockableDoor application in just a few seconds(or maybe minutes). Download Fizzim Now!

PureMVC StateMachine lockable door demo

I created and slightly modified Lockable Door application mentioned in StateMachine presentation by Cliff Hall. Application have 3 states OPENED, CLOSED and LOCKED, makes use of entry, exit guards and also sends CHANGED annoucement(notification) for specific(CLOSED) state. This demo is great for beginners learning PureMVC StateMachine Utility.

View demo, source code, fsm diagram

Transition between States in PureMVC StateMachine Utility

Below you can see what’s happening when transition between states occurs. First your application sends a StateMachine.ACTION Notification that triggers the StateMachine to begin a transition. Any state specific exiting or entering guard(Commands or Mediators)¬†defined for the current and target state are notified. If transition is not cancelled the current state is changed to the target state and any state specific CHANGED annoucement is sent. And finally a generic annoucement of the CHANGED is sent.

Continue reading ‘Transition between States in PureMVC StateMachine Utility’ »

Module to Module communication

This example is implemented using PureMVC and demonstrates how to load dynamically, connect and communicate Modules that have been implemented using the PureMVC framework.GreenModule communicates with BlueModule directly through pipe(no need for sending messages to Shell/Application and from Shell back to the Module). The same happens for BlueModule-GreenModule communication, messages are sent through pipe.

View and study Source Code
Live Demo

Connecting Module to Shell – simplified diagram

I had a hard time to understand Flex/PureMVC-Multicore version with Pipes utility especially when simple demos on the web use TeeSplit and Pipe to connect single module to application (diagram at the top-left). It didn’t really make sense to have TeeSplit for only one Pipe/Module. It makes more sense to add Tees(TeeSpit, TeeMerge) only when you go to the next level of having the application collaborate with multiple modules (diagram at the bottom).

Jump into code

PureMVC actors and their responsibilities

Model(Proxies) contains the data and business logic.
View(Mediators) presents the user interface components.
Controller(Commands) handles the user input and manipulates the model.

Read short description and examples