If you're seeing something other than Verdana, the Font is Graublau Sans Web by FDI fonts.info
Skills Required: Flex, ActionScript, Acrobat 9
One of the great new features of Adobe Acrobat 9 Pro and Pro Extended is the ability to add SFW based Rich Media Annotations (RMAs) developed in Flash or Flex. These SWF files can be placed in a PDF file using the new Flash Tool in Acrobat 9 and play using the built-in Flash Player. The built-in player provides greater security and consistency for Flash playback inside any PDF file. For those of you that attempted to use Flash in a PDF with earlier versions of Acrobat, you'll remember that the user experience wasn't’t all that great. Acrobat 9 provides tight integration between the PDF document and the RMAs well as other content types that run in the Flash Player such as FLV and H.264 encoded video.
There are two ways to play the RMA in a PDF file, on the page or in a floating window.
When the RMA is played on the page, you are able to use the Acrobat commenting features to review and markup the interactive content.
In the example file (linked below) there are two RMAs on the page; the top line chart "Revenue Timeline" and the bottom chart "Regional Breakdown" which is initially empty.
When a user clicks on one of the data points in the "Revenue Timeline", it sends data to the the "Regional Breakdown" chart which shows a pie chart.
Click on other points of the "Revenue Timeline" and the pie should update based on the month you click.
To set this up, I modified this Flex Dashboard example. In the original dashboard, the three pods were all part of the same application so communication between the pods was pretty easy. It's not quite the same with Acrobat but the concepts are similar enough that having a look at the original example is valuable.
Four steps to Inter-RMA communication
The method getAnnotRichMedia takes a page number and the name of an AnnotRichMedia object. Unfortunately, the is no UI in Acrobat that will tell you the names of the AnnotRichMedia objects on the page, however, they are always named "RMxxx" where "xxx" is a number. The number portion of the name is created when the RMA is added to the page. Even though there are only two RMAs on the page, in the example file, the RMAs are named "RM7" and "RM40". It took me a few tries to get the file working properly and the number start to add up. The effect of adding the same SWF to a file repeatedly as you make chages to it is that you can't count on the first RMA being "RM1" and the second being "RM2".
Unfortunately, I have no idea whether that object is the line chart or the pie chart. I just know it's the second element in the array of RMA objects. Again, ther is no UI in Acrobat that will tell you which is the one you actually want.
var stringForPDF:String = "newPieData=\""+itemForPDF+"\""; ExternalInterface.call("eval", stringForPDF);
Now that I have the variable "newPieData" in Acrobat's memory, I can use ExternalInterface again to execute the method that calls the exposed method "updatePieChart" in each of the RMAs on the page.
Step 3 and 4 can be collapsed but I find it easier to debug when I separate getting the string into Acrobat and sending it back into the RMAs.