编程语言概览

ActionScript

交互媒体的启蒙者:动态、时间轴、事件流

1990s AIR 桌面应用 游戏开发 互联网

简介

ActionScript主要用于交互内容开发,现由Wipro维护。ActionScript具备完整的面向对象结构,适用于工程化开发,主要应用于大型网页游戏、富媒体交互课件、企业软件、动画软件、独立游戏等领域。核心环境AIR先后由Adobe、Harman和Wipro维护。

首次发布

1997年

典型应用

跨平台交互软件开发

运行环境

AIR / Royale / Flash Player

语言风格

ECMA-262 / ECMA-357

设计目标与特性

事件流 Stage3D 反射 类型系统 显示对象 OOP E4X
从早期的Flash到后来的AIR,如果你尝试在这些平台进行开发,你会发现它们的核心思想是事件流。ActionScript几乎无处不用事件,这也是人机交互的一个特点,用户的每一次输入都可以视作一个事件,而媒体只需要对事件进行响应即可。当事件流足够合理之时,整个交互程序便架构完善了。

语法示例

package {
  import flash.display.Sprite;
  import flash.text.TextField;

  public class Main extends Sprite {
    public function Main() {
      var t:TextField = new TextField();
      t.text = "Hello, ActionScript!";
      addChild(t);
    }
  }
}

发展时间线

1997
Flash 2.0附带了一个脚本功能,这使得动画可被控制,而非简单的线性时间轴。
1999
到了Flash 4.0时期,这个脚本功能被正式称作Actions,并且具备了基本的程序结构语法。例如变量、条件语句、循环等。
2000
ActionScript 1.0推出,采用基于ECMAScript的原型编程,新增对on语句和onClipEvent语句的支持。它支持过程式编程和面向对象编程,作为Flash 5.0的一部分推出。
2002
此时虽然还叫做ActionScript 1.0,但是引入了新的事件侦听器模型,从而使程序能够以更灵活的条件进行异步编程。
2003
ActionScript 2.0引入了许多特性,知名的包括类相关能力,extends、implements等,以及变量的强类型声明,还有import语句等。ActionScript 2.0可以交叉编译为1.0的字节码,因此仍然向后兼容。
2007
ActionScript 3.0是一次大刀阔斧的更新,变成了完全的面向对象编程语言,强制使用package、class等结构。此外,定义了int和uint基元类型,引入了DOM3的事件模型和E4X的语法,并优化了性能。这些更改的代价是引入了新的虚拟机,ActionScript 3.0不再和ActionScript 1.0&2.0一起执行。
2008
这一年为ActionScript 3.0引入了Vector.<T>,作为泛型数组使用。这也是语言内唯一的泛型实现。同一年,AIR 1.0发布,标志着ActionScript从浏览器开发走向应用开发。
2022
ActionScript 3.1引入了空值合并运算符、可选链运算符以及逐字字符串等特性。同一时期,AIR 50.0发布。
2024
随着AIR 51.0发布,引入了单精度浮点数float。单精度浮点数占用双精度浮点数一半的内存,因此在性能需求高的场景下更具意义。

生态与代表应用

常见使用场景
  • 客户端应用
  • 游戏开发
  • 多媒体课件与互动内容
  • 网页互动动画与广告
代表平台
  • AVM2 / Adobe AIR
  • Flash Player
  • APM包管理器
  • Starling
  • Adobe Animate