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创作交互动画和网络应用的能力。
外部链接[ | ]
- 百度百科上的 ActionScript
- Macromedia Wiki 上的ActionScript
- 维基百科上的ActionScript
- adobe wiki 上的ActionScript
补充[ | ]
这个文章我用了百度百科那边,以后应该会用回adobe英文那边