In this chapter, I describe the basic architecture of a Flex application from the point of view of a developer.
In previous chapters, I described the role of Flash Player in hosting a Flex application at runtime, regardless of whether you use the version of the Player that's hosted by a Web browser (a Web application) or the version that's embedded in the Adobe Integrated Runtime (a desktop application).
In either case, Flash Player "plays" the application with a bit of software known as the ActionScript Virtual Machine (the AVM). Flash Player 9 (the version that runs Flex 3 applications) includes two versions of the AVM. The first is for older documents and applications built in Flash and Flex 1.x that use ActionScript 1 and 2. The other, newer AVM is for documents and applications that use ActionScript 3.
Flash Player 9 can run either ActionScript 2 or ActionScript 3, but not both simultaneously. Prior to the introduction of Flash CS3, which supports the newer version of the language, a Flash component built with ActionScript 2 that was incorporated into a Flex 2 application would have its ActionScript code ignored by the Flash Player at runtime.
Flash Player is doing the work at runtime, interpreting your ActionScript code and executing the application's functionality. And while a Flex application is typically built in a combination of MXML and ActionScript code, Flash Player understands only compiled ActionScript.