简介
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