Authorware
| Top Ten Tips and Tricks |
![]()
| Understand and use the System Functions and Variables. | |
| Once you have a good understanding of the system functions and variables within Authorware, you can do almost anything with your applications. Macromedia has made it easy by including descriptions and example code for each type, which can be pasted directly into your calculations. Functions and variables can help you to easily determine and set user and course information, time and date, icon properties and user performance data. |
| View and dissect the Authorware Show Me files. | |
| Macromedia includes numerous Show Me files with Authorware. Those samples demonstrate valuable design and development techniques that can be applied to your projects. The code can be copied and pasted into your piece and modified as you see fit. There are other samples that developers have created and posted over the years. This site links to many of them. |
| Purchase the Buddy API Xtra. | |
| I use Buddy API in almost every application that I develop. Created by Gary Smith, Buddy API includes many useful functions not included in Authorware. I first found this xtra a few years ago when I was trying to replicate some Windows functions (minimizing the presentation window, creating dialog boxes, etc.). Buddy API extends Authorware in a huge way. The most valuable function is the ReadINI function and the WriteINI function, and here’s why… |
| Use INI files instead of flat text files for external data. | ||
| Many developers use text files to store external data. With text files, it’s difficult to and update text strings and make content dynamic. There’s also a 32K limit on importing text, so files often have to be segmented. INI files present a better alternative.
Unlike text files, INI files allow you to store data in Sections and Keys. You are able to reference specific pieces of data, almost like you can with a database. Here’s a sample sections of an INI file:
Building your screen is as easy as retrieving the specific chunk of text using the ReadINI function: background := baReadINI(“Screen”^currentscreen, “background”, “”, filelocation^”sample.ini”) Unlike flat text files, you don’t have to parse the data; you can just assign the specified text to a variable. The WriteINI function allows you to create or update an INI file. This function is used to handle simple bookmarking, store user preferences and scores, and modify content on the fly: baWriteINI(UserID, “Score”^currentscreen, “Score”^currentscreen, filelocation^”scores.ini”) There is a sample posted on this site of a dynamic quiz that builds the content using an INI file and writes the scores to a different INI file. NOTE: INI files can be used with web-packaged projects. You must include the file in your map file and download to the client system. You can then reference the file using RecordsLocation. |
| Use Property Lists instead of sequential variables. | |
| If you use custom variables, you might be tempted to use sequential variables to hold course or user data (ex. Answer1, Answer2, Answer3, etc.). This has the potential of growing out of hand; what if you wanted to track all responses on a 50-question quiz? By creating a property list and adding list items, you reduce memory requirements, improve performance, and make coding alot easier. |
| Apply Text Styles to screen text. | |
| As you add text elements to your projects, using styles will save you time and effort as the project grows. If you decide to change the look or size of your text, styles allow you to apply those changes globally. |
| Add comments to your projects and document your work. | |
| Functionality from one project can often be used in others, and over time it’s easy to forget how complicated interactive components function. Also, if you are working on a project team, what seems logical to one developer might not be local to others. Comments should be used to document your logic, explain custom variables and provide a change record. Also, that late-night idea might not seem so brilliant in the morning (or a year from now), so add comments often and explain why and how it works. It’s also a good idea to keep a master document of all projects with version history, description, audience and major features. |
| Create libraries and models to store useful chunks of code. | |
| Authorware libraries are used to store a collection of individual icons and calculations. If you have graphics or sounds that are duplicated in a piece, the size of the project will not increase as additional linked copies are used. Libraries also benefit project teams, since team members are able to access and use a centralized set of graphics, sound and calculations.
While libraries are able to store individual icons, models can store entire flowlines and logic. |
| Use templates and external links. | |
| As much as you can, try to build your pieces so that logic and graphics can be reused. Templates, when used with external text and graphics, allow you to develop complicated pieces while eliminating repetitive code. If you are building an assessment, create a template for each question type instead of creating a screen for each question. External links to graphics and text allow you to customize the look and feel of a training piece at runtime and provide added benefits like multilingual text delivery, dynamic content and faster development time. |
| Network with other Authorware developers. | |
| There are lots of networking opportunities available on the Internet and around the country. One source of Authorware expertise is the Authorware Support Forum. With over 2,000 topics at any given time, you’re sure to find answers to questions that you might have. You can also meet many knowledge folks at conferences or through the many Macromedia User Groups. Click here to access some of my favorite sites. |





I am a learning development manager and web developer living in metropolitan Detroit with my wife and two kids. I've spent the last 13 years developing interactive multimedia courses and web sites to support corporate training initiatives. I am also an adjunct professor in the Master of Educational Technology program at Lawrence Technological University in Southfield, Michigan.