ActionScript3编译运行
【编写ActionScript代码的工具】
Flash——它是一种矢量多媒体动画制作技术,该技术制作的多媒体文件格式为swf。其它一些动画制作软件(3dmax、maya)也可以制作动画,但在Web支持方面却显不足,而且文件较大。开发环境Adobe Flash CS Professional。
Flex——Flex是一个展现服务器,开发者可以利用它来开发新一代的RIA应用。Flex拥有丰富的用户界面组件、用于排布这些组件的基于XML的MXML语言以及可以处理用户交互的面向对象编程(OOP)语言。它结合JAVA EE或.Net等技术与Flash技术,具有前者的强大服务逻辑管理能力和后者的强大的友好用户交互界面。Flex使得传统的开发人员(java,php,.net)能够开发原本面向设计者的Flash,从而使得开功能强大而交互性更强的应用成为可能。开发环境:Flash Builder。
【Flash客户运行时环境】
ActionScript程序可以在三种不同的软件应用程序(都是Adobe出品)上执行:Flash Player、Adobe AIR和Flash Lite。
一般来说,Flash Player、Adobe AIR和Flash Lite都被称为Flash客户运行时环境(或简称Flash运行时),因为当ActionScript程序被执行或“运行”时,它们管理着程序。Flash运行时在Windows、Macintosh和Linux以及多种不同的移动硬件设备上可用。因为ActionScript程序是被Flash运行时执行,而不是被特定的操作系统或硬件设备执行,每个ActionScript 程序都被认为是可移植的,因为它可以在不同的硬件设备(手机,游戏控制台)和操作系统(Windows,Macintosh和Linux)上运行。
【编译】
ActionScript程序在可被Flash运行时执行之前,必须从人可读的ActionScript 3.0代码转化为一种Flash运行时所理解的浓缩的二进制形式,称为ActionScript字节码(或ABC)。然而,ActionScript字节码本身不能被Flash运行时执行;而必须被封装到一个称为.swf文件的二进制容器文件中,.swf文件把字节码和任何ActionScript程序所需的嵌入媒体资源都存储到Flash文件格式或称SWF中。将ActionScript程序转化为字节码的过程叫作编译该程序,生成.swf文件的过程叫作编译该.swf文件,有时也叫输出或发布该.swf文件。
要编译ActionScript 3.0程序和.swf文件,我们使用一个叫编译器的软件模块。编译ActionScript代码的编译器叫作ActionScript编译器;生成.swf文件的编译器叫作SWF编译器。任何声称完全支持Flash文件格式的SWF编译器都包括一个ActionScript编译器。自然,Flex Builder 2和Flash制作工具都包含一个SWF编译器(并额外包括一个ActionScript编译器)。Flex Builder 2和Flash制作工具共享同一个ActionScript编译器,但却有不同的SWF编译器——分别叫作Flex编译器和Flash编译器。Adobe还把Flex编译器作为一个单独的命令行程序提供,叫作mxmlc。mxmlc编译器包含在Adobe的免费开发者工具包Flex SDK中。
【即时编译(Just-In-Time Compilation)】
当 ActionScript程序运行的时候,Flash运行时读取编译过的ActionScript字节码并将它翻译成本地机器码指令,在它所运行的特定的计算机硬件上执行。很多情况下,本地机器码指令被保存下来以便它们可以再次使用而不需要重新从ActionScript字节码翻译。
将ActionScript 3.0代码转化为字节码叫作编译,同样,将ActionScript字节码翻译成本地机器码并留待后续执行的过程也叫作编译。首先,程序员将人可读格式的代码编译成Flash运行时所理解的格式(ActionScript字节码),然后,Flash运行时自动将ActionScript字节码编译成运行程序的硬件所理解的格式(本地机器码),后面这种编译形式(字节码到机器码)被称为即时编译,或JIT,因为它就在程序需要特定的被编译的字节码之前立即发生。即时编译有时也叫动态翻译。有经验的程序员可能有兴趣了解,类定义的顶层不是即时编译的(因为它只被执行一次)。