AS 3.0 不是 AS 2.0 简单的升级
AS 3.0 支持运行期间的数据类型验证。AS 2.0只支持者编译期间的类型验证。
增强的异常处理机制
使用新的虚拟机AVM2(ActionScript Virtual Machine),代码的运行速度提升了10倍以上。
请结合上文阅读下面的小贴士 var str:* 这里的星代表不确定类型,可以赋予任意类型的值。
使用下面的代码来捕获/处理异常:
try{
代码
}catch(errObject:Error){
trace("这里在代码处发生错误执行,错误信息:"+errObject.message);
}finally{
trace("这里一定会被执行");
}
AS2.0 代码编译为字节码,体积小且安全,无法直接浏览SWF中的代码,但执行效率较低。计算机采用的是二进制代码来执行。AS3.0采用了JIT(Just in time compilation)技术,程序中运行时将字节码翻译为二进制码,并保存在内存中,从而改善了字节码的执行性能。
面向对象的编程思想
在AS3.0中所有一切都是对象,每个对象都具有自己的属性和方法。
在面向对象的程序设计中,对象必须被定义为类,它具有如下面向对象的特性:
封装 :最主要的优点就是将对象的信息隐藏,吧功能模块化。用户关心的是怎么去用这个类,不关心它是怎么实现的。
继承 :子类可以继承父类的方法和属性,还可以增加自己的新功能和属性。
可重用 :体现了封装和继承的优点。
抽象类:无法产生对象,定义很广泛,范围很大,无法有与之对应的具体实现。用来被其子类继承,它的子类必须定义了父类的抽象方法。
AS 3.0 的面向对象语法
创建类和对象
在ActionScript 中,类以as 为扩展名,文件名和类名相同。区分大小写,基本语法: package 包名 {
修饰词 class 类名 {
//代码块
}
}
package :类所属的包,一个类必须被放在包中。一个包对应文件系统中的一个文件夹,多层级的包对应多层级的文件夹,层级之间用点号分开:package mx.controls
类和变量以及函数名都遵循相同的命名规则,只能由字母、数字和下划线组成,不能以数字开头。类的定义必须在package 里面。
在一个AS类文件中,只能有一个public 类型的类,位于package 里面,且文件名必须和这个类名相同。
类有以下的修饰词:
public:公有类型,这个类可以在任何地方的任何对象访问,一般用来定义全局使用的类。
internal:内部类型,只能在同一个package 中的类才能访问,如果没有指定修饰词为internal。
dynamic:动态类型,类的属性和方法不确定,允许在运行时动态的添加。MovieClip 类便是动态类。当要继承动态类时,也要定义为动态类型。一般只用于特殊场合。
final:终点类型,表示类是继承关系中的终点,不能被继承。可以被视为一个固定的、无法被动态修改的常数。
public 和 internal 是最基本的修饰词,可以用来定义dynamic 和 final 类的类型。
在一个as文件中,可以定义多个类,但只能一个类位于package 中。
var 对象名:类名 = new 类的构造函数(); //实例化一个类
var 关键字用来声明一个变量或对象。
如果使用的类和代码所在的对象不在同一个包时,需要用 import 关键字将它引用进来:import 类的路径
类的构造函数:定义变量时被调用,跟类名相同的函数,必须是public类型,且没有返回值。构造函数是可选的,当没有定义时,编译器会自动添加一个空的函数。
定义属性和函数
属性是定义在类中的变量或者常量,而方法则对应一个函数,当调用类的方法时,也就是执行一个函数来完成相应的功能。
属性定义:定义一个类型为String的属性str,并符初始值"Hello"
private var str:String = "Hello";
方法:定义了一个方法ff 返回值为空,方法必须定义返回值
public function ff():void{//方法代码};
使用关键字 this 代表当前对象,指向类的实例。只有在创建类的实例时,this 才确立了自己的身份。
属性和函数有以下修饰词:public > internal > protected > private
public:公有类型,可以被所有的类使用。
protected:保护类型,定义的属性和函数可以在内部使用,或者在子类的内部使用,但外部是无法看到的。
private:私有类型,最严格的类型,只能在类的内部使用,外部无法看到的。
internal:内部类型,只能在同一个package 内部使用,可以被同一个 package 内的类访问。
函数参数默认值:如果调用函数时没有传入值,则使用默认值。
public function doTest(s:String = "默认值"):void{//代码}
函数的不定参数:参数的个数可以动态改变,不定参数使用...args 的形式,其中args是一个数组,存放了所有的参数。比如:
public function doTest(...args):void{
args[0];
args[1];
.....
}
调用时:
doTest("参数1","参数2",...);
静态属性、函数和常量
类的属性或者函数具有唯一性,即使类没有被实例化,它们也始终存在于内存中,不管类有多少个实例,静态属性和函数都只有1个,且和实例没有关系。
静态函数只能访问类的静态变量和静态函数。
定义静态类型:使用关键字 static ,其中public 和static 位置可以对调。
public static var str:String = "Hello";
public static function doTest(s:String):void{}
定义常量:常量的值在确认后就不能改变,使用关键字 const 定义:
public const STR:String = "我是常量";
如果将常量定位为静态类型,就成为了类的 静态常量。
一般采用大写字母定位常量。
继承
继承是指在已有类的基础上加新的属性和方法,保留了已有类的属性和方法。
AS 3.0 只允许一次继承一个父类。
子类可以访问父类中 public 和protected 类型的属性和函数,如果父类和子类中同包下,可访问internal类型的属性和方法,但private是无法访问的。
子类不能定义父类非private类型的属性和方法。
继承类使用关键字 extends:
public class subFl extends Fl
覆盖父类的方法:使用关键字 override ,在覆盖时,方法的格式必须是一样的。
父类方法:protected function doTest():void;
覆盖的方法:override protected function doTest():void;
调用父类的方法:super.doTest();
使用final 关键字定位为类不能被继承。
接口
AS3.0 没有提供定义抽象类的方法,只提供了接口。
接口是若干方法的集合,它只声明这些方法,而不实现方法。描述一类具有共同特性的对象,这些对象都实现了接口中的方法,同时有自己的特点。
接口只支持:public 或者 internal
定义接口:
public interface IExample{
function start(task:String):void;
function stop(task:String):void;
}
接口也可以实现继承,一次能继承多个接口:
public interface IExample extends Iinterface1, Iinterface2
接口的实现:implements ,一次可以实现多个接口,用逗号分隔。
public class Example implements IExample{
public function start(task:String):void{
//
}
public function stop(task:String):void{
//
}
}
在实现类中,必须定义接口中所有的方法,且遵循以下规则:
函数必须声明为 public 类型
函数名相同
参数数量和类型相同
返回值类型相同
同时继承类和实现接口:
public class Example extends Canvas implements IExmple
分享到:
相关推荐
本教程源文件着重于教授ActionScript 3.0的基础知识和实际应用。 一、ActionScript 3.0简介 ActionScript 3.0相较于2.0版本进行了重大升级,它引入了类型检查、更严格的语法和显著的性能提升。AS3.0使用ECMAScript ...
"ActionScript 3.0 编程.pdf"这份文档很可能是关于ActionScript 3.0的教程或参考手册,它可能涵盖从基础知识到高级特性的全面内容,包括对象导向编程、错误处理、性能优化、组件开发等方面。通过阅读和实践这份文档...
本书全面介绍了ActionScript 3.0的基本语法、类的架构以及面向对象程序的设计理念。...本书既适合Flash ActionScript初学者使用,也适合有一定编程基础的学习者进一步深造使用。可作为自学教材和各级培训用教材。
#### 二、ActionScript3.0编程基础 - **变量与数据类型**:ActionScript3.0支持多种内置的数据类型,如Number、String、Boolean等。此外,还支持自定义的数据类型。 - **运算符**:包括算术运算符、比较运算符、逻辑...
一、ActionScript 3.0 语言基础 1. 语法:AS3.0 引入了严格的类型系统,要求在声明变量时指定类型,如 `var myVar:Number;`。此外,语句必须以分号结尾,提高了代码的可读性。 2. 变量与数据类型:AS3.0 包括基本...
总的来说,“ActionScript 3.0编程技术实战宝典”是全面了解和掌握ActionScript 3.0编程的宝贵资源,无论你是初学者还是经验丰富的开发者,都能从中获益匪浅,提升自己的编程技能。通过实际案例和实践练习,读者将...
这份"ActionScript3.0编程手册PDF"提供了全面的指南,帮助开发者深入理解和熟练运用ActionScript3.0。 一、ActionScript3.0概述 ActionScript3.0相较于之前的版本有显著的提升,特别是在性能、类型系统和编程模型...
《Flash ActionScript3.0教程示例(从入门到精通)》是一本全面解析ActionScript3.0编程语言在Flash平台上的应用的教程。ActionScript3.0是Adobe Flash Professional中的核心编程语言,用于创建交互式动画、游戏、富...
它在ActionScript 2.0的基础上进行了重大升级,引入了更强大的类型系统、改进的性能以及更严格的语法,为开发者提供了更高效和灵活的编程环境。 ActionScript 3.0 的核心特性包括: 1. 类和对象:AS3.0 引入了完全...
本书全面介绍了ActionScript 3.0的基本语法、类的架构以及面向对象程序的设计理念。...本书既适合Flash ActionScript初学者使用,也适合有一定编程基础的学习者进一步深造使用。可作为自学教材和各级培训用教材。
第 1章 :ActionScript3.0 简介 关于 ActionScript ActionScript 3.0 的优点 ActionScript 3.0 中的新增功能 核心语言功能 Flash Player API 功能 与早期版本的兼容性 第 2章 :ActionScript 快速入门 编程基础 ...
本书全面介绍了ActionScript 3.0的基本语法、类的架构以及面向对象程序的设计理念。...本书既适合Flash ActionScript初学者使用,也适合有一定编程基础的学习者进一步深造使用。可作为自学教材和各级培训用教材。
第一部分: 第1篇 ActionScript3.0语言基础 第1章 ActionScript3.0概述 第2章 搭建ActionScript3.0开发环境 ... 第9章 可视化编程基础 第10章 对象交互与事件处理 第11章 ActionScript3.0可视对象 ......
本书详细地介绍了 actionscript 3.0的基础知识,包括 actionscript 3.0语言、actionscript 3.0对象的操作方法、显示列表的使用、事件模型、加载外部素材、可视化编程以及利用声音和视频增强应用程序等方面的知识,并...
#### ActionScript 3.0编程基础 1. **变量与数据类型**:了解如何声明变量以及常见的数据类型(如整数、浮点数、字符串等)。 2. **条件语句与循环**:掌握if/else语句、switch语句以及for/while循环的使用方法。 3....
ActionScript 3.0是Adobe开发的一种面向对象的编程语言,主要用于创建富互联网应用程序(RIA)和Flash内容,尤其在游戏开发领域应用广泛。ActionScript 3.0相较于早期版本有显著的性能提升、类型系统强化和更严格的...
《Flash ActionScript 3.0动画教程》是一本专为学习和掌握Flash中ActionScript 3.0编程语言而设计的教程,特别适合对动画制作和互动设计感兴趣的读者。ActionScript 3.0是Adobe Flash Platform的核心编程语言,它的...