Adobe Wiki

ActionScript(简称AS)是由Macromedia(现已被Adobe收购)为其Flash产品开发的 ,最初是一种简单的脚本语言,已更新到版本ActionScript3.0,是一种完全的面向对象的编程语言,功能强大,类库丰富,语法类似JavaScript,多用于Flash互动性、娱乐性、实用性开发,网页制作和RIA(丰富互联网程序)开发。

定义[ | ]

运用在flash上的脚本语言。

使用[ | ]

ActionScript 动作脚本是遵循ECMAscript第四版 的Adobe Flash Player运行时环境的编程语言。它在 Flash 内容和应用程序中实现交互性、数据处理、以及其他功能。 [2]

* ActionScript 是由 Flash Player 地方gtr和其中的 ActionScript虚拟机(AVM)来执行。

* ActionScript代码通常被编译成“字节码格式”。

* ActionScript 的主要 IDE(集成开发环境) 是Adobe公司的 Flash Builder,最新版本 4.7。

* ActionScript CS3(2007)后为更新为ActionScript 3.0,语言的系统结构完全改变,支持即时编译,语言功能增强速度。

发展[ | ]

从macromedia大刀阔斧对As1.0进行改革到AS2.0,这一段过程看上去还算长一些,从flashmx到flash mx2004到flash 7.2再到flash8. 它们的核心actionscript都是as2.0.在flash8刚刚发布不长时间,macromedia又紧罗密鼓的推出了flash9预览版,Adobe发布的预览版可以对AS3.0进行编译,而As3.0经过测试它的速度可以说要比之前的as2.0快10倍.拿着as3.0与As2.0相对比,它看上去就象是重写的一种新语言一样.还有随之推出的adobe的Flex 2.0 builder. Flex sdk.让许多人一时不知所措。

·Flash Player2:第一个支持脚本的版本,包括控制时间轴的gotoAndPlay, gotoAndStop, nextFrame和nextScene等动作。

· Flash Player 3:增强了载入外部SWF文件的基本脚本支持(loadMovie)。

· Flash Player 4:第一个完全实现脚本功能(称为动作)的播放器。这些脚本拥有简练的语法和对循环,条件,变量和其它基本语言结构的支持。

· Flash Player 5:第一个拥有真正意义上的ActionScript的版本。依据ECMAScript并采用基于原型编程,并允许完全的 过程序编程和面向对象编程。

· Flash Player 6:增加了事件处理模型,并且支持switch。

· Flash Player 7:Flash Player 7 提供一些新特性如支持CSS显示文本和增强显示效果。 Macromedia Flash编译器和Flash Player 7同时支持基于ECMAScript 4 Netscape Proposal的类编程语言ActionScript 2.0。不过ActionScript 2.0能交叉编译成ActionScript 1.0的字节码,因此它能运行于Flash Player 6。

· Flash Player 8:增加用于运行时图象数据控制和文件上传的新类库及APIs,ActionScript 2.0功能更为完善。

· Flash Player 8.5(计划于2006春发布release版本,currently in public beta):增加ActionScript 3.0和一个称为AVM2(ActionScript Virtual Machine 2)新的虚拟机,它可以与前版本AVM1共存以便支持旧内容。增强性能是该版本的主要目标。

· Flash Player 9 2007发表,这是adobe收购Macromedia后的第一个版本,并且也是Mac OS X上第一个Universal版本的Flash Player。

· Flash Player 10

基本记法

ActionScript 2.0

下面打印Hello World。值得注意的是这只能在整合环境下执行,因为trace函式只有支持整合环境。

trace("Hello world!");

下面代码利用onMouseMove事件当鼠标移动时输出现行鼠标位置。同样的这只有在整合环境下执行。

onMouseMove = function () {

trace("X: "+_root._xmouse);

trace("Y: "+_root._ymouse);

};

这个较先进的范例创造一个包括数字与字符串的数组,并利用原形函式(prototype function)与函式递归给变量名num指定一个数,给变量str指定一个字符串。然后,利用MovieClip应用程序接口,文字区域被显示在屏幕上,文字区域里头写入了变量值。

var my_Array:Array = new Array("Hello", "ActionScript", 3, 7, 11, "Flash");

Array.prototype.pickNumber = function():Number {

var rand:Number = random(this.length);

return (typeof (this[rand]) == "number") ? this[rand] : this.pickNumber();

};

Array.prototype.pickString = function():String {

var rand:Number = random(this.length);

return (typeof (this[rand]) == "string") ? this[rand] : this.pickString();

};

var num:Number = my_Array.pickNumber();

var str:String = my_Array.pickString();

_root.createTextField("txt", 1, 10, 10, 530, 390);

txt.text = "Array = "+my_Array+"\nRandom Number = "+num+"\nRandom String = "+str;

ActionScript 3.0

下面先进的Hello World程序需要在Flex 2.0公开Alpha测试版整合环境中编译。

package {

import flash.text.TextField;

import flash.display.MovieClip;

import flash.filters.DropShadowFilter;

public class HelloWorld extends MovieClip {

public function HelloWorld() {

var shad:DropShadowFilter = new DropShadowFilter(2, 45, 0x000000, 25, 3, 3, 2, 2);

var txt:TextField = new TextField();

txt.textColor = 0xFFFFFF;

txt.filters = [shad];

txt.width = 120;

txt.x = Math.random()*300;

txt.y = Math.random()*300;

txt.selectable = false;

txt.text = "Hello World! ["+Math.round(txt.x)+","+Math.round(txt.y)+"]";

addChild(txt);

}

}

}

//-----ActionScript3.0----------------- //as3.0最重要的概念就是在效能方面的增进,平时所加入的任何事件都可以被监听或从内存中移除 //以下例子就是监听与移除内存占用,这是as3.0最重要的基础概念。

bt1.addEventListener(MouseEvent.CLICK,bt1_click);

function bt1_click(e:MouseEvent):void{ //触发的事件内容; }

//该按纽监听不需要时则remove掉,增加效能 bt1.removeEventListener(MouseEvent.CLICK,bt1_click);

相关术语[ | ]

1.Actions (动作):就是程序语句,它是actionscript脚本语言的灵魂和核心.

2.Events (事件):简单的说,要执行某一个动作,必须提供一定的条件,如需要某一个事件对该动作进行的一种触发,那么这个触发功能的部分就是actionscript中的事件.

3.Class (类):是一系列相互之间有联系的数据的集合,用来定义新的对象类型.

4.Constructor (构造器):用于定义类的属性和方法的函数.

5.Expressions (表达式):语句中能够产生一个值的任一部分.

6.Function.(函数):指可以被传送参数并能返回值的以及可重复使用的代码块.

7.Identifiers (标示符):用于识别某个变量,属性,对象,函数或方法的名称.

8.Instances (实例):实例是属于某个类的对象,一个类的每一个实例都包含类的所有属性和方法.

9.Variable (变量):变量是储存任意数据类型的值的标示符.

10. Instancenames (实例名):是在脚本中指向影片剪辑实例的唯一名字.

11.Methods (方法):是指被指派给某一个对象的函数,一个函数被分配后,它可以作为这个对象的方法被调用.

12.Objects (对象):就是属性的集合.每个对象都有自己的名字和值,通过对象可以自由访问某一个类型的信息.

13.Property (特性):对象具有的独特属性.

Flash使用ActionScript给动画添加交互性。在简单动画中,Flash按顺序播放动画中的场景和帧,而在交互动画中,用户可以使用键盘或鼠标与动画交互。例如,可以单击动画中的按钮,然后跳转到动画的不同部分继续播放;可以移动动画中的对象;可以在表单中输入信息等等。使用ActionScript可以控制Flash动画中的对象,创建导航元素和交互元素,扩展Flash创作交互动画和网络应用的能力。

外部链接[ | ]

补充[ | ]

这个文章我用了百度百科那边,以后应该会用回adobe英文那边