Accessibility
Home / DevNet / Pet Market Application Center
DevNet
DevNet Article
Icon or Spacer Icon or Spacer Icon or Spacer

Jason Hatcher
Macromedia
 

Pet Market is a demonstration of the best-practices for creating a Rich Internet Application with Macromedia MX, an integrated family of tool, server, and client technologies. Pet Market was built to show developers how to create a usable, feature-rich web application using Macromedia Flash MX to build the rich user interface, ColdFusion MX for the server Application Programming Interfaces (APIs), Dreamweaver MX for development, and Fireworks MX for bitmapped graphics editing and optimization. It is called a blueprint application because it is a pattern that developers can follow when building their own web applications. This article discusses how Pet Market was made and covers the following topics:

·
The Pet Market user interface
·
The Pet Market browsing experience
·
The Pet Market architecture
·
Pet Market's Model/View/Controller (MVC) Architecture
·
ColdFusion Components API
·
Exercises for the reader
·
Lessons learned
·
Terminology
·
Other resources


As you look over the Pet Market application you will notice four main sections: the browsing interface, the home page interface, the purchasing interface, and the information interface.

·
Browsing UI Includes all the category, product, and item-level browsing.
·
Homepage UI Includes the History, Search, Cart, and advertisements.
·
Purchasing UI Includes the checkout process (this includes all the customer information and purchase option fields required to fulfill a transaction).
·
Information UI Includes the about us, legal notices, affiliate programs, and home links.

The browsing portion of the user interface contains the category view. The category view contains 5 top-level pet categories with each category having several variants of pets associated with it.

As you click an individual pet category, the pet's picture will animate to the lower-left portion of the page and list all variants of the pet category. As the product changes and animates, the data for the product is being retrieved from the server without the page reloading. This is a powerful feature of the Macromedia Flash MX client. Often, the data is returned before the animation completes.

The Pet Market application includes nearly 50 pictures of animals. Each bitmap is optimized for size and image quality in Macromedia Fireworks MX. The 50 pet images were optimized using the batch process function of Macromedia Fireworks MX

Because Macromedia Flash MX supports loading JPEG images on the fly, it is not necessary to download all these pictures before interacting with the SWF. Only the pictures that are requested by the client are downloaded.

You will also notice that as you select a specific pet from the pet category, the homepage section of the Pet Market application is dynamically updated with your selection's name, picture, and description. And like most other online stores, you can select an item and add it to a shopping cart as shown below:

Checkout forms
The checkout forms in the Pet Market application are another area where Macromedia Flash MX and ColdFusion MX have been integrated to create a powerful feature. The customer checkout process is composed of collapsible forms that request a variety of information from you as seen below:

Some of the major advantages the checkout forms in the Pet Market application have over a set of HTML forms are:

·
You can perform sophisticated data validation on the client side with Macromedia Flash MX. It is possible to validate whether credit cards and phone number are correct and you can also perform validation on the server without having to submit a form and sending back an HTML page with the results.
·
There is no page reload. Because it is not necessary for the checkout forms to reload, there is much quicker response to data entry for the user.
·
The checkout forms in the Pet Market application use a wizard-based approach. The checkout forms break the process into 5 easy steps. Moreover, steps can be revisited while containing data (the steps don't have to reload as they do in traditional HTML).
·
When credit card information is submitted, the user interface can change and show progress as the credit card is being validated. Thus, preventing multiple submissions.
·
The Macromedia Flash MX version of the checkout fits on a single screen unlike most HTML versions of the checkout experience.

Masking images
Macromedia Flash MX can add distinctive styles to normal images. For example, the pet pictures in the upper right-hand corner are normal rectangular images that have an oval mask applied to them on the client side by Macromedia Flash MX. Such functionality makes it very easy to add additional pet images without having to process the pet image before publishing the image on the server. If you wanted to accomplish this in HTML, you would have to edit each individual image and apply the mask.


As you navigate the Pet Market application, you may notice how fast the browsing experience is. All the product browsing data is coming from the server through the AMF (Action Message Format) protocol. This provides the Macromedia Flash MX client with native ActionScript objects to use for displaying data. Why are native ActionScript objects important? Because you don't have to convert to and from XML format.

Macromedia Flash MX allowed the developers of the Pet Market application to collapse what would have been a multi-page HTML purchase experience into a multi-step experience that retains context and access to previously entered information without page refreshes. Pre-validation of form data can be performed by logic in the client that, unlike JavaScript-based approaches, is independent of browser implementation differences. And server-side validation (as in the case of creating a new user and checking that the username is unique) may be performed without a page refresh. The shopping cart is a persistent element of the overall interface and is completely interactive. Quantities may be edited, items removed and added, all without reloading pages or losing context.

Furthermore, because Macromedia Flash MX is capable of performing many application activities locally, it is often the case that fewer server transactions are necessary. This means that a server can handle a larger load with a Macromedia Flash-based UI when compared to a comparable HTML UI.

ActionScript
The Pet Market application provides a smooth shopping experience for the user. This experience would not be possible without the use of ActionScript. ActionScript is a full fledged, standards-based, object-oriented programming language used in the Macromedia Flash MX authoring environment. ActionScript files (.as and .asr files) can be coded and managed in Macromedia Dreamweaver MX. The Pet Market application uses a sophisticated object-oriented architecture based on a Model-View-Controller design pattern.

The Pet Market application consists of a number of objects created in ActionScript. For example, when the Finch is clicked in the list of birds, ActionScript binds the event to the main browsing and history UI. ActionScript causes a picture of a Finch and its related data to show up on the main screen and also adds a color icon and list item to the list history UI widget.

ActionScript is also used in the Pet Market application when a user browses the application. While browsing, the ActionScript either enables or disables the application elements depending on the current application state. For example, when the shopping cart is collapsed and the user adds an item to it, ActionScript automatically expands the cart to indicate data has been added to the shopping cart.

A third example of ActionScript implementation is credit card validation. All credit card information is validated in Macromedia Flash MX by an ActionScript function.

Macromedia Flash MX UI Components
One of the great aspects about developing the Pet Market application was implementing some of the UI components shipped with Macromedia Flash MX. The UI components implement standard user interface elements, such as list boxes, radio buttons, and check boxes. Through the power of ActionScript, code bound to the components allows event driven modification of component parameters and options. Components can be used separately to add simple user interactions to Macromedia Flash MX SWFs, or together to create a complete user interface for forms or applications.

Some of the advantages of using Macromedia Flash MX UI components for application development are:

·
They have built-in levels of functionality expected of browser-level toolbox controls (keyboard accessibility, states, change handlers).
·
They have standardized APIs for controlling appearance and functionality.
·
They can be reused across not just a single application like the Pet Market application, but across an entire site with no additional downloads for the end-user.
·
They make rough prototyping and creating API testers incredibly easy.
·
They are "data-aware", able to interact directly with server-side objects and pageable recordsets.
·
They are fully tested and ready to use.

The components used in the Pet Market application are:

Component
Description
Example
CheckBox The CheckBox component lets you add check boxes to Macromedia Flash MX SWFs with a minimum of authoring and scripting.
ComboBox The ComboBox component lets you add scrollable single-selection drop-down lists to Macromedia Flash MX SWFs with a minimum of authoring and scripting.
IconButton The IconButton component lets you create a button with a custom icon and look.
ListBox The ListBox component lets you add single and multiple-selection list boxes to Macromedia Flash MX SWFs.
MessageBox The MessageBox component lets you add dialog boxes to a Macromedia Flash MX SWF.
RadioButton The RadioButton component lets you add groups of radio buttons to Macromedia Flash MX documents.
ScrollBar The ScrollBar component provides functionality for adding vertical and horizontal scrollbars to dynamic and input text fields.

Find out more about the complete set of components available with Macromedia Flash MX at the Macromedia Flash MX Application Development Center.

The Macromedia Flash MX UI components can also be extended to provide your own custom interface elements. In the Pet Market application, the list box was extended 3 different ways:

·
It was extended to provide a solid color list.
·
It was extended to allow drag-and-drop operations from the product items to the shopping cart.
·
It was extended in the shopping cart itself to allow item quantities to be changed in a list box.

Macromedia Flash Remoting
Macromedia Flash Remoting links a Macromedia Flash MX client with a ColdFusion MX back-end. This gateway technology connects Macromedia Flash MX components on the client side with server-side application services. Macromedia Flash Remoting enables a Macromedia Flash MX client to interface with remote components running on an application server in an efficient, secure, and reliable way. Macromedia Flash Remoting ships as an integrated feature of ColdFusion MX and JRun 4. Some of the advantages of using this technology are:

·
Macromedia Flash Remoting provides a single, simple, common approach to invoking server functionality using ActionScript
·
The NetConnection Debugger enables end-to-end client and server debugging.
·
ColdFusion Components are accessible through Macromedia Flash Remoting.
·
Macromedia Flash Remoting is tightly integrated with ColdFusion MX security and session management.
·
Macromedia Flash Remoting provides a robust, high performance transfer of data between Macromedia Flash MX and remote objects using AMF, an optimized, lightweight message format that layers on HTTP.

For more information on Macromedia Flash Remoting, refer to the Macromedia Flash Remoting page.

Service-based architecture
The Pet Market application was developed using a service-based architecture. This was possible because, unlike HTML-based architectures, all of the data presentation takes place on the client within the Macromedia Flash MX SWF. This meant dramatic reduction in lines of server code. Furthermore, thanks to the rich data formatting abilities of Macromedia Flash MX and the advanced service-based architecture of ColdFusion MX, the services were kept quite simple. In fact, most of the services are simply ColdFusion Components (CFCs) wrapped around database queries. CFCs are self-documenting, reusable application components callable from CFML pages, Macromedia Flash clients, or via web services. CFCs are created using Cold Fusion Markup Language (CFML).

Another benefit of this approach is that the Macromedia Flash MX client is not dependent on the service implementation. This means that you can build your prototype service in ColdFusion MX, and transition to a Java or .NET server implementation if desired, with no changes to client code

Other aspects to note
There are no language dependent strings embedded in the Macromedia Flash MX SWFs; all strings shown in the interface come from either a static text file or the server-side "string resources service". Moreover, nearly all of the data is located on the server in the database. This is a great advantage for the Pet Market application because it shows how the Macromedia Flash MX SWF is dynamic and can respond to new products and items without the Macromedia Flash MX SWF having to be rebuilt.


As you begin to examine the source code for the Pet Market application, you will notice there are two layers to the implementation: the client-side Macromedia Flash User Interface and a ColdFusion-based back-end. In addition to the implemented layers, the system consists of Macromedia Flash Remoting, ColdFusion MX, Macromedia Flash MX Player and a third party database. The architecture is presented in the following diagram.

Runtime files
At runtime, the runtime components of the Pet Market application are downloaded at various times to the client browser. The following table lists the different components, their sizes, and the function they perform. (Note “SWF” refers to the compiled Macromedia Flash file format with the file extension “.swf”, while “FLA” refers to the source Macromedia Flash file format with the file extension “.fla”).

File Size Function

Macromedia Flash version detection - The player detection for Pet Market is implemented using the Macromedia Flash Deployment Kit.

Dispatcher.js

17k JavaScript that detects the presence, version, and capabilities of the Macromedia Flash Player installed on the users machine.

Dispatcher.vbs

2k VBScript that can detect the Macromedia Flash ActiveX control.

detectFlash.swf

1k Self-detecting 'sniffer' SWF that internally detects the version of the Macromedia Flash Player instaled on the users machine.

upgradeFlash.html

2k HTML page that the user is directed to if the detection scripts determine that they have an older player version that the application requires.

installFlash.html

2k HTML page that the user is directed to if the detection scripts determine that the player is not installed on the system.

HTML wrapper pages

store.html

1k Lead in page for application. Implements Macromedia Flash Player detection, which redirects the user to the appropriate page.
flashstore.html 1k The enclosing frameset for the Pet Market page.
main.html 1k The enclosing page for the main frame (main.swf) of the Pet Market.
subswf.html 2k The HTML page that encloses the browser history SWF (subswf.swf).
error.html 1k HTML page for display of communication errors.

Macromedia Flash SWF files - The Pet Market application UI is broken down into 4 separate SWF files so that static parts of the application are separated. Since SWFs can be cached, this ensures minimal download size if the application is changed.

shell.swf 12k A "shell" SWF that enforces load order of other SWFs & provides initial loading feedback. This is the first SWF that is loaded. This SWF will seldom change.
embed_fonts.swf 30k This contains the two embedded font resources that are used throughout the Pet Market application. This SWF will seldom change.
fui_components.swf 39k All the Macromedia Flash components used in the Pet Market. This SWF will seldom change.
main.swf 57k This is the heart of the Pet Market application. It contains all of the logic and the application's main timeline. This SWF is the most likely to change if the Pet Market application is enhanced.
subswf.swf 1k The SWF that implements the browser history management feature.

Images and configuration files

shell_init.xml 2k Initialization file for the shell.swf. Contains paths for the 3 different possible back-end technologies (ColdFusion, Java, or .NET) and strings for the loading sequence text.
/images directory Varies from 1k to 15k Images used in project. These are downloaded dynamically as the user requests info about a particular item.

ActionScript Overview
Nearly all of the Pet Market application UI logic, including UI animation, is in external ActionScript files. External ActionScript files have the file extension “.as” and can be edited in Dreamweaver MX, Macromedia Flash MX, or any text editor. The FLA files do contain some ActionScript, but that ActionScript consists mainly of calls to functions defined in external ActionScript files. This factoring of the client side ActionScript code makes it easier for multiple developers to work on different parts of the client simultaneously.

Each external ActionScript file contains a comment indicating where it is #included in the FLA. Based on their function, the ActionScript files can be divided into the following categories.

Model-Controller Classes
These classes implement the Model and Controller objects. See the detailed description below.

View Classes
These classes implement the Views. See the detailed description below.

UI Classes
These classes implement UI functionality, but are not directly connected to ModelController classes (Folder: flash_src/UIClasses).

Checkout UI Classes
These classes represent the 5 sections of the checkout experience. The code is broken up here to avoid a large monolithic class file for the CheckoutUI View class.

Component Extension Classes
These classes extend the Macromedia Flash MX Listbox. The code is #included in the fui_components.fla file and is called from the Pet Market list boxes (Folder: flash_src/componentExtensions).

Init Functions
The initialization functions are called from the movie timeline to set up styles and communication (Folder: flash_src/initFunctions).

Utility Functions
The utility functions are functions that don't fit neatly into any of the other categories (Folder: flash_src/utilityFunctions).


Pet Market source code is centered around the Model/View/Controller (MVC) architecture. The MVC architecture is commonly used in UI centric applications as a way of organizing code into classes that handle data (Models), classes that dispatch among UI elements (Controllers), and classes that implement the UI elements (Views).

In Pet Market, the Model classes are the CatalogModel, the CartModel, OrderModel, StringResourcesModel and the UserModel. All the class files are in the ModelControllerClasses folder. Each of these model classes handle Macromedia Flash Remoting calls to the Catalog and Cart gateway services.

The Controller functionality is implemented via the Broadcaster class, which is also defined in the ModelControllerClasses folder. The Broadcaster implements Controller with the addEventListener/listenToBroadcaster function pair. View classes register themselves with the broadcaster by calling addEventListener on a broadcaster object. The broadcaster notifies View classes of new data by calling listenToBroadcaster on registered View classes.

Each of the Model classes above derive from the Broadcaster class which means the classes also function as Controllers and that is why their containing folder is called ModelControllerClasses. The View classes use the ModelControllerClasses to both request data and to be notified when data is available. For example, the CartUI View class registers itself with the CartModel as a listener to the "addCartItem" event. The CartUI can now use the CartModel class in two ways: it can ask the CartModel to add data to the cart on the server (Model functionality) and it can implement the listenToBroadcaster function to be notified when new cart data should be displayed (Controller functionality).

The ViewClasses folder contains classes that govern UI behavior and that also listen to at least one of the ModelController classes. The ViewClasses have been grouped to implement a distinct function area in the Pet Market application. When the function area neatly fits into a parent movie clip, the class code is attached to the MovieClip in the library, otherwise the View Clip is a pure ActionScript object that manages movie clip references. The individual files contain comments explaining which class is the former and which the latter.

Note: the main timeline itself is also a View class and it implements listenToBroadcaster in the mainInit.as file. Having the main timeline as a View class gives all movie clips the ability to communicate with the main timeline without referencing it directly. This is key to the hide/show checkout animations.

main.fla Walkthrough
The main.fla has been carefully grouped into descriptively named layers and folders. Whenever possible, closely related layers are grouped together. Since layers do affect the visual appearance of the movie, the layer ordering is significant.

Following convention, the layer stack starts with layers that do not contain graphical elements. In particular, there are layers for frame labels and Actions.

While the main.fla does contain nearly all of the ActionScript code, the code is stored in external files ending with the AS extension. When code is in main.fla itself, it is contained in either the "Actions : Class definitions" layer or the "Actions : Function calls" layer. In particular, the "Actions : Class definitions" layer simply contains #includes and the "Actions : Function calls" layers is mostly initialization function calls and timeline- dependent movieclip hiding/showing code. This source code organization is a Macromedia suggested best practice.

One last thing to note about the layer stack: order matters for layers containing graphical elements. The order determines how the content will appear on the stage.

Here's a brief rundown of the timeline.

Frame 1 of layer "Actions : Class definitions" starts with a list of #include files. These #includes are restricted to a frame that executes exactly once. In addition, all of the frame 1 #includes are files that are not associated with Library movie clip symbols.

Frames 1-5 of layer "Actions : Function calls" contain function calls that set up UI style, retrieve application strings, retrieve or generate new user data, and display a welcome message.

Frame 6 ("homeLoading") of layer "Actions : Function calls" sets up the connection to the gateway, registers category and item browsing listeners, and then requests the category list from the gateway. All of these calls are wrapped in an if statement so that they occur exactly once while the SWF runs. Since the listeners have been set up, all future ActionScript will take place in the ViewClasses code, triggered by listenToBroadcaster calls.

Frame 11 ("home") of layer "Actions : Function calls" sets up the widgets on the right hand side of the UI. It contains a call to initWidgets() which in turn initializes the widgets and registers them as listeners to ModelController class events.

Frame 26 ("checkout") of layer "Actions : Function calls" sets up the checkout widget and registers it as a listener. This code is also wrapped in an if statement that ensures the initialization code only executes once.


The back-end of the Pet Market application is implemented using ColdFusion Components. The API is broken into 8 separate API components and 1 common component for functions used by more than 1 API component. The component files are located in the folder named "api". The components are described below:

Catalog Service
The catalog service provides the APIs for browsing the catalog of pets.

Cart Service
The cart service provides the APIs for interacting with a shopping cart (e.g., adding or removing items).

User Service
The user service provides the APIs for creating, updating and getting users.

Address Utility Service
The address utility service provides APIs to assist in creating and validating address items (e.g., postal codes).

Order Service
The order service is an API that simulates the order process. In the Pet Market application, the order service simply deletes a cart. In a real-world implementation, this service would "kick-off" the order fulfillment process.

Credit Card Service
The credit card service is an example of using server-side ActionScript to create an API. This service provides a function to validate a credit card number. Clearly, this is a rudimentary example, as we are not implementing any encryption for the credit card information.

Version Service
The version service provides an API to retrieve version information. This is particularly useful during test phases of the project.

Common
The common component contains functions used by the API components.


Pet Market was designed as an example application to demonstrate the power of Macromedia Flash MX, Macromedia Flash Remoting and Macromedia ColdFusion MX. We concentrated on features that demonstrate the advantages of these technologies. This section addresses topics that are important to a robust production application that were not implemented in the Pet Market application. We deemed these features to be straightforward extensions to the Pet Market example and leave them as an exercise to the reader.

Localization
The global nature of the Internet makes localization of an application paramount. While Pet Market is not localized it is structured with localization in mind. All string resources for the Macromedia Flash UI are separated into files distinct from the ActionScript code. Localizing Pet Market requires setting the locale for the front end and providing the string resources for the particular language. Furthermore, the database contains columns for locale, where appropriate, so that data may be retrieved for the user's locale.

All string resource for the Macromedia Flash UI are stored in the following files:

·
stringresourcesservice.cfc
·
shell_init.txt

Examples of how one might approach localization of the Pet Market application can be found in the following files:

·
stringresourcesservice.cfc - back-end support for localized string resources
·
categorymodel.as - creating service models that account for locale
·
store.html - dynamically setting the locale

User Management
To keep the Pet Market application simple, we did not implement full scale user management functionality. In particular, here are some of the user management related functions that would likely be added in a production application:

·
Login/logout: Allow a user who as already created an account to log in before proceeding to checkout. This process would restore a previous shopping session and merge the stored cart contents with the current cart.
·
User preferences: allow a logged in user to change personal data without having to go through the checkout.
·
User specific enhanced browsing: enhance advertisements based on current logged in user.

Database Maintenance
Pet Market creates records in the database as users shop for and purchase pets. Over time, the database will accumulate extraneous records for items such as carts and users. Ideally, the system would include a process that would periodically review the database and purge items that are no longer necessary. To facilitate such a process, database records would include time-stamps to record when the item was last accessed.

Accessibility
Pet Market is accessible for keyboard navigation but not for screen readers. Consider building in screen reader accessibility features at the design phase utilizing the new accessibility feature in Macromedia Flash MX. To learn more about this new feature, reference "Creating Accessible Content" in the Help menu of Macromedia Flash MX.

Search
The search functionality in Pet Market is quite simplistic. For a commercial deployment, a full-fledged search function would need to handle issues such as word breaks and scoring results. Check out the Verity search features in ColdFusion MX for further ideas on implementing a robust search feature.

Security
The blueprint application's APIs were designed to be easy to use and understand and not for high security. Since security is such an important part of constructing robust web applications, it's worth taking a little time to address the issue of what kinds of things could be changed to harden the Pet Market for production use.

Many of the CFC functions depend on database ID values as parameters in order to determine on which objects to operate. Given that there is no authentication for most of the functions (and in some case, since there has been no user account created to authenticate against), these functions could easily be used by a rogue client to modify the carts of other users of the site.

A more secure approach would keep the cart instance in the session, so that it is accessible only by the user on whose behalf it was created. A rogue client would have to guess the session ID of his target in order to use the functions to modify their cart. This doesn't mean the security is perfect, but it puts the responsibility for keeping the cart secure back in its proper place -- on the application server's ability to keep session data secure. Application servers do this in many ways, among them using algorithms to generate session IDs that are very hard to guess.

The same approach would apply for the user data. The database OID would be kept on the server rather than being made available to the Macromedia Flash SWF as part of the returned user object. A user would be required to successfully log in to get or update their user information.

Lastly, like any secure application, it should be served using HTTPS in order to make eavesdropping difficult.


As the last cup of coffee met its eternal resting place, the team sat down to reflect on the experience of developing the Pet Market. The goal was to reflect on the development process and to create a list of lessons learned. Read over the following list and keep in mind these best practices so you, too, can build user-friendly and highly efficient web applications using the power of Macromedia Flash MX and ColdFusion MX.
  1. You need to decide how much of the application you want to develop for the client and how much you want to develop for the server. It is recommended you place as much of the UI on the client as possible. But keep in mind you do not want to send a lot of data all at once from the server to the client.

    For example, consider the Zip Code validation logic in Pet Market. Zip Code validation must be done at the server, for the simple reason that there are over 40,000 unique Zip Codes. That's way too much data to send to the client to edit one Zip Code.

    Similarly, the product hierarchy in the Pet Market is stored on the server. Although the sample database has a relatively small number of products, a real-life application would have a much larger number of items in the product database, making it time-prohibitive to send the complete product hierarchy to the client in this application.

  2. When designing your API to communicate between the client and the server, start by writing a general purpose API. Then, based on testing, optimize where needed by creating additional API functions to address specific performance issues.
  1. It is important to minimize actions that make too many API calls per user interaction. For example, modem communication takes roughly 1/10th of a second for the message to get from the client to the server and vice versa. You control this by creating an API that bundles multiple requests into one request.
  1. Take advantage of object-oriented programming on the client side. This allows you to more readily change the look of the application while retaining the central logic. For example, it allowed us to go through several UI iterations without having to rewrite a lot of code. The Model-View-Controller architecture of the Pet Market allowed us to uncouple the user interface from the model, allowing multiple engineers to work in parallel on the client.


To fully understand how the Pet Market application works, you need to understand the following terms:

Timelines - Macromedia Flash MX has a main timeline and each movie clip symbol has its own timeline.

Main Stage vs. Library - You should understand that some of the data is on the main stage and some of it is in the library.

You should also understand the difference between movie clip instances and movie clip symbols—this is critical. Movie clip instances are individual instances of a movie clip symbol. For more information, refer to the Macromedia Flash MX documentation.

Macromedia Flash Remoting - Macromedia Flash Remoting is the gateway technology that connects Macromedia Flash MX components on the client side with server-side application services. Macromedia Flash Remoting enables Macromedia Flash MX SWFs to make use of web services.

Movie clip events - Describes how to make movie clips respond to clicks and presses.

CFML - ColdFusion Markup Language tags (CFML) are similar in syntax to HTML tags. But unlike HTML, CFML enables you to create dynamic web pages.

ColdFusion Component - ColdFusion components (CFCs) are files, written in CFML, that encapsulate application functionality and make that functionality available to a variety of clients, including web browsers, other ColdFusion developers, Macromedia Flash Player, and web services. When you create a ColdFusion component, you include the .cfc extension in the file name.

ColdFusion Page - A ColdFusion page is a text file containing ColdFusion Markup Language (CFML) tags, functions, and operators that is interpreted by ColdFusion MX. When you create a ColdFusion page, you include the .cfm extension in the file name.


ActionScript Coding Best Practices (PDF 716k)
The foundation of a good application is good clean and coherent code. Learn how to standardize your ActionScript code in this white paper.

Macromedia Flash MX: Better Interfaces for Web Applications (PDF 1.85MB)
Put your users first. Find out how Macromedia Flash MX interfaces make web experiences smoother.

Creating components in Macromedia Flash MX
This article explains how to create a component in Macromedia Flash MX, including defining parameters, adding a description, and creating a custom interface and a Live Preview.

Creating forms with UI components in Macromedia Flash MX
Learn how to create a simple order form using the Macromedia Flash MX UI components in Macromedia Flash MX, and how to submit the form data using the new LoadVars ActionScript object.

Getting Started with ColdFusion MX
New to ColdFusion? Hit the ground running with these tutorials and articles.

Creating CFCs and Web Services in Dreamweaver MX
An overview for using Dreamweaver MX to create, generate, and modify CFCs.


 

Jason Hatcher is an Instructional Media Development (IMD) Manager at Macromedia and a member of the Sitespring engineering team. He has written documentation for Sitespring, Macromedia Flash MX, and the Macromedia Pet Market blueprint application.