DLG Software

Application development

  with JavaScript, Flex, and AIR

This covers the certification exams Flex 3 with AIR (exam #9A0—082) and Flex 4 (exam #9A0-129).

Why Certification?

I have no idea whether employers/clients care about certification, though I assume it raises their comfort level (cert tests are usually fairly comprehensive, so if you've passed one they can safely assume you're not a total moron).

As for me, I decided to take this test mostly for myself. First, I wanted to see how I measured up to the Adobe standard (not too bad, score of 88% for the Flex 3 exam, 86% for Flex 4). Second, I find that certification tests are a good learning motivator — because of their scope they force you to delve into the nooks and crannies of a language.

Whatever your reasons, if you're thinking of taking a Flex ACE exam this post might help you prepare.

The certification exam

Your first stop for info on any Flex ACE exam should be Adobe's own description of the test. Here is Adobe's pdf for the Flex 3 with AIR exam, and here is Adobe's pdf for the Flex 4 exam.

For a list of all of Adobe's certification exams and a link for registering for an exam you can visit this Adobe page.

If you want to ace the ACE exam then you'll likely need some prep time since the exam covers a lot of ground (and sometimes gets into the weeds). That's where practice tests like Attest (more on that below) are useful. They highlight those details you never stored in your memory banks because ASDoc was just a mouse click away. Things like syntax or parameter options or the enumeration values for a class property (quick, what's the domain of values for the type property of AIR's Window class?).

An example: I don't do much with graphic effects, so when the need arises I generally need to turn to ASDoc for syntax/options. However, since Adobe's description of the exam had some sample questions and one mentioned BlendMode I reviewed the topic. As a result I was ready when a related question appeared on my exam (remember, BlendMode.ADD is used to create a lightening dissolve — you are adding light — while BlendMode.SUBTRACT is for a darkening dissolve — you are subtracting light).

Exam format

The exam contains 50 questions with a passing grade of 67%. My exams were simple multiple choice, with some questions having "Choose two" answers (so, correct answer wasn't simply A or B or C, but A and B, or A and C, etc.).

Note: some test prep sites inflate what's on the test in order to get you to pay their training fee. Here's what one says: "This test consists of Multiple Choice, Hot Area, Drag and Drop, Build list and reorder, and Build a Tree questions." Bullfeathers. Don't let these training sites scare you, this test (my test, at least) was simple multiple choice.

You have 90 minutes to complete the exam. This should be plenty if you do your prep — I used about half my allotted time for the Flex 3 test, a bit more for Flex 4.

Exam content

If you're researching the Flex ACE exams you probably already know what the exam covers, but below is a summary (note that the Adobe pdfs mentioned above have a bit more detail, but not much).

Flex 3 with AIR:

  1. Creating a User Interface (UI) — (22%)
  2. Flex system architecture and design — (18%)
  3. Programming Flex applications with ActionScript — (24%)
  4. Interacting with data sources and servers — (16%)
  5. Using Flex in the Adobe Integrated Runtime (AIR) — (20%)

Flex 4:

  1. Creating a User Interface (UI) — (34%)
  2. Flex system architecture and design — (17%)
  3. Programming Flex applications with ActionScript — (20%)
  4. Interacting with data sources and servers — (14%)
  5. Using Flex in the Adobe Integrated Runtime (AIR) — (15%)

For the Flex 4 ACE exam, note the greater emphasis on UI (34% versus 22%). This likely reflects the significant changes in UI functionality, including skinning, CSS syntax, new container and layout classes, and new graphics primitives (i.e., FXG).

Make sure you are very familiar with AIR, especially deployment of AIR apps (for the Flex 3 exam this really hurt me, I scored only 70% on this section).

Make sure you are familiar with LCDS — even if you haven't used it you need to spend some time reading about it, especially look at the new Model Driven Development stuff, at least understand its capabilities (for the Flex 4 exam the LCDS-related stuff was my killer, I scored in the 90's on the other 4 sections). If you're new to this and want an overview I recommend Chris Conraets 2008 MAX presentation.

My Flex 4 test really didn't look backward at Flex 3 components like Repeater, which isn't surprising since Adobe wants you focused on the new functionality (e.g., DataGroup).

While I've read posts where people mention they had a UML-related question on their exams I saw none of that.

Note: see the last section of this post for some sample Q's that reflect my test's content.

Test prep resources

The best test prep materials are the Adobe's Flex docs, you don't really need any third-party books. As I recall, some questions had wording that almost exactly matched what I'd see in the Adobe doc. BTW, this includes not just ASDoc but especially Livedocs. If you prefer having the doc in PDF format (great for printing chapters and reading on the subway) you can download the Flex3-related PDFs from here and the Flex4-related PDFs from here.

As for taking some practice tests, I highly recommend pxldesigns's Attest 3, which gives you lots of sample questions in random order, provides a timed testing environment similar to the real test, costs only $20, and has a free evaluation version you can test drive. I found that the Attest questions were slightly harder than those on the real exam, though the content did reflect the real exam's scope. Attest's developers, David Flatley and Holly Schinsky, are experienced Flex developers who have done the Flex community a great favor by providing a cheap sample ACE preparation tool (built with AIR!).

Note: The latest version of Attest, Attest 3, is focused on Flex 4. As of Jan 2011 it didn't include questions for Flex3, though David told me in an email that they wanted to incorporate the Flex 3 material into Attest 3, but the work hadn't been completed. So, the version I used for my Flex 3/AIR prep was an older version, Attest PRO; for the Flex 4 ACE exam I used Attest 3.

Jonnie Spratley had a nice test prep PDF (100 pages long!) BUT I just tried to access it and his domain looks whacked, hopefully it will be back online later, so try searching for Spratley and "Adobe Flex & AIR ACE Study Guide". Hope you can find it, it was very useful.

Some general tips/sample Q's

Here are some topics/questions that reflect what I saw on the test (no actual test questions, revealing those wouldn't be cricket). If you're hazy on these it's time for some test prep:

  • verticalCenter and horizontalCenter override not just constraints like right= and bottom= but also coords x= and y=
  • The [Event] metadata tag requires both name and type parameters, and value for type must include the package in the class specifier
  • for Flex 3 the order of precedence for style definitions is (highest priority to lowest):
  1. inline (e.g., <mx:Text text="howdy" color="blue" />)
  2. class (e.g. <mx:Text text="howdy" styleName="myText"/>, with .myText style defined in CSS)
  3. type (e.g., Button - an AS class)
  4. ancestor type (e.g., LinkButton inherits font from Button)
  5. parent chain (inheriting styles only = mostly colors and fonts)
  6. global (Flex applies your style properties to all controls, regardless of whether the properties are inheritable)
  • A constant value can only be assigned once, and it must occur either in the declaration or inside the class constructor. Also, assigning in constructor will only compile in standard compile mode, strict mode requires it to be set in the declaration.
  • For AIR, to create a seamless install, you make use of badge.swf. The badge.swf loads the air.swf and is the default badge for seamless installs. However, to create a custom seamless install you create your own SWF that directly loads the air.swf.

..and here are some questions (most derived from Attest, I think). Again, if these are unfamiliar then you should hit the books.

Q: Which of the following classes do you implement when you want to write a custom class to perform object serialization?

  1. ISerializable
  2. Serializable
  3. Externalizable
  4. IExternalizable
ANS: IExternalizable

Q: Before using the findAny(), findFirst(), and findLast() methods of the IViewCursor class what must be applied first on the ICollectionView implementation?

  1. moveNext()
  2. beforeFirst()
  3. Sort()
  4. Nothing else is needed to use these methods
ANS: Item #3

Q: For LCDS, what would you expect to find inside the /WEB— INF/flex/libs folder?

  1. SWC component files
  2. Java class files
  3. ActionScript class files
  4. configuration files
ANS: item 1, and the SWCs include Flex SWCs like framework.swc

Q: For a custom Validator class you must override which protected method of the Validator class?

  1. handleResults()
  2. validate()
  3. validateAll()
  4. doValidation()
ANS: item 4.

Q: Which of the following AIR window types does not appear on the Windows task bar or the Mac OS X window menu, and requires the systemChrome property to be set to "none"?

  1. normal
  2. utility
  3. lightweight
  4. None of the above
ANS: item 3

Q: Which of the following is not true regarding the AIR seamless install:

  1. The seamless install feature lets users install the AIR application without saving the AIR file to their computer
  2. If the AIR runtime is not installed the seamless install feature installs the runtime
  3. To create your own SWF to use for seamless install you load and use badge.swf
  4. This features lets you embed a SWF file in a web page that lets the user install an AIR application from the browser
ANS: item 3
Flex/AIR certification logo


JavaScript appdev primers

General JavaScript

SPA Demo Application

Backbone Demo Application

Recommended sites


Flex/AIR primers

Flex demo apps

all require Flash Player!

AIR mobile dev


SAS Introduction