ActionScript是Adobe Flash Player和Adobe AIR运行环境下的编程语言,由嵌入在Flash Player中的ActionScript虚拟机(AVM)执行。ActionScript代码通常由编译器(如Adobe Flash CS4 Professional或Adobe Flash Builder的内置编译器,或Adobe Flex SDK中提供的编辑器)编译为“字节代码格式”(一种由计算机编写并且计算机能够理解的编程语言),字节码嵌入在SWF文件中,SWF文件由Flash Player和AIR执行。
ActionScript 3.0 提供了可靠的编程模型,具备面向对象编程的基本知识的开发人员对此模型会感到似曾相识。ActionScript 3.0 相对于早期 ActionScript 版本改进的一些重要功能包括:
一个新增的 ActionScript 虚拟机,称为 AVM2,它使用全新的字节代码指令集,可使性能显著提高
一个更为先进的编译器代码库,可执行比早期编译器版本更深入的优化
一个扩展并改进的应用程序编程接口 (API),拥有对对象的低级控制和真正意义上的面向对象的模型
一个基于 ECMAScript for XML (E4X) 规范(ECMA-357 第 2 版)的 XML API。E4X 是 ECMAScript 的一种语言扩展,它将 XML 添加为语言的本机数据类型
一个基于文档对象模型 (DOM) 第 3 级事件规范的事件模型
1)在MXML中编写ActionScript代码
在MXML文件中插入
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" creationComplete="a()"> <fx:Script> <![CDATA[ public function a():void { var i:String= "Flex"; } ]]> <fx:Script> </s:Application>
2)编写ActionScript类
新建Flex项目,在src包下,建AS类文件。例如,要定义一个计算圆面积的类,可以使用以下代码:
package com.flex.demo { public class Circle { //定义常量π private const PAI:Number = 3.14; //定义属性: 半径 private var radius:Number ; //构造方法 public function Circle(radius:Number) { this.radius = radius ; } //获得圆的面积方法 public function area():Number { return this.PAI*this.radius*this.radius; } } }
3)在MXML文件中引用AS类及AS文件
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" initialize="appInitializeHandler(event)"> <fx:Script> <![CDATA[ import mx.managers.BrowserManager; protected function appInitializeHandler(event:FlexEvent):void { // 设置标题栏目 BrowserManager.getInstance().setTitle('IPWIN'); } ]]> </fx:Script> <!-- 加载外部AS文件 --> <fx:Script source="assets/ascript/dispatch.as"/> </s:Application>
注:以上代码中,import即引用的AS类文件,可以为flex自带的文件,也可以为自己定义的类文件。<fx:Script />标签引用的是AS文件,仅包含方法的AS文件不可为类文件。