Flash RAD: A first breakdown of functional blocks

Posted on May 12, 2009


This article describes the functional blocks defined in the Flash RAD Framework. These functional blocks are used as a basis to build the architecture.


Wrappers take over the controls of any object they envelop. They offer a generalized interface other objects and services in the application can communicate with.

Panels and Reports
Panels and reports are both used to present data. Reports present data in fixed sized pages designed to print from Flash. Panels are used to present the site.

Dumb Objects / Object Representatives
Dumb Objects are visual objects on the stage without any internal intelligence. They are used to locate the place and size of the Smart Object that will take the place of the Dumb Object. Another form of Dumb Objects are Object Representatives.

Smart Objects
Smart Objects contain logic to do stuff.


Object Creator
A Creator creates functional objects or services that can be used as building blocks to build stuff.

Object Provider
A provider provides the objects and services to a Builder.

Object Builder
A builder builds more complex constructions using the objects created by a Creator and offered by a Provider.

Component: a part used to create larger constructions.
Construction: the end result from a building process.
Service: anything any component has to offer to an external object.
Interface: a common interconnection between two or more objects.

Object Demolisher
A demolisher destroys anything created. Each object in principle should have an internal Demolisher.

Object Recycler
A recycler re-uses objects to limit the amount of created objects and reduce the use of system resources. As a result the application can become more efficient.

Simple Factory
A Simple Factory is used to create all the objects you need to present anything in the site.

A Parser translates one thing to something else. In the case of the Flash RAD Framework, for instance, the parser uses XHTML and CSS code to create, position and present visual objects the user can interact with.


Loading data from- and sending data to a data source is in most cases an asynchronous process. Also, the data structure itself needs to be stranslated to something the application can use. Below are the functional blocks that deal with this process.

Data Loader
A loader loads the data from a data source. This can be either an XML provider or something else. When the data is loaded, the Data Loader dispatches a “Data Loaded” event.

Data Collector
A Data Collector collects data from forms and other sources of data in the site or application.

Data Submittor
A Data Submittor sends the (collected) data to a data source, to be stored or processed there. It recieves a status and/or the processed data.

Data Parser
A Pata Parser iterates throught the loaded or collected data and translates it to another form that can be used somewhere else. A Data Parser can use a Data Handler to perform more complex actions to the data.

Data Handler (see: Business logic)

Data Manager
A Data Manager does not perform any action on the data (as the Handler and Parser do) but simply manages the data itself. For instance: buffering data for re-use as the Recycler does.

Data Object: a relatively dumb object used to store data in.
Model: a Smart Object that maintains and manipulates one or more Data Objects.
Data Package: an object used to transport data from one object to another.

Data Casting
Data Casting is done via Events. The Event Broadcaster casts the parsed and handled data to any subscriber in the casting list, or to the server.


Event Broadcaster
An Event Broadcaster broadcasts the occurrence of an event. It sends information related to the event using a Data Package.

Event Subscriber
An Event Subscriber is an object that wants to be notified (and updated) when a specific event occurs.

Event Manager
The Event Manager is located at the broadcasting end of the Event and manages the events, the event lists and asynchronous situations, where subscribers to an event are instantiated after the event occurs. (For instance, when calling a page within an external movieclip that is not loaded yet.)

Event Handler (see: Business Logic)

Event: the event itself
Event Type: the type of event
Event Data: the data related to the event. Sent using a Data Package.


Event Trigger
An Event Trigger is waiting or listening to an event to happen. When the Event Trigger is triggered (i.e. because the user presses a button), other events will be fired for broader use (i.e. loading new data from the server).

Action Sequencer
An Action Sequencer plays a sequence of actions, based on a trigger from the user, or from a process. Actions can theoretically contain anything from loading and saving data to moving panels around. In the Flash RAD framework they mainly regard animations and visual and auditif feedback.

Sequence Manager
The Sequence Manager deals with the management of all overlaying processes playing the sequence actions that were triggered by an event. It can i.e. abort sequences, reverse sequences and divert them.

Feedback Handler
A Feedback Handler projects visual or auditif feedback to the user. This can be i.e. in the shape of sounds on a mouse over event, or a glow or highlight on a button, object or text.

Feedback Manager
The Feedback Manager handles the way feedback is presented. For instance, it might be that only one sound can be heard at one time, or (error) messages are presented in a quee of popups.



Data Handler (re: Data)
A Data Handler handles the data it receives. This can regard i.e.: applying business rules, performing calculations, performing sorting and/or filtering.

Data Processor
A Data Processor performs more complex actions on the data itself.

Data Verifyer
A Data Verifyer varifies if the offered data is applying to the connected rules.


Event Handler
The Event Handler is located at the recieving end of the Event and deals with the logics to handle an event and handle the data casted to the subscriber.

User input

Form verifyer
A Form Verifyer checks if the user input in forms are according to the schema to which that form should apply to.