Flash ActionScript 2.0 基础教程
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-12
ActionScript 2.0-针对OOP的关键字和特性
下面我们将真正研究一下AS2的特性,在早期往往是在讨论AS1复杂的面向对象编程比实际工作更多一些,现在你将很快的看到,你不用花很多时间去争论怎么样做到最好的继承,将代码放置在哪和如何组织好你的代码库。
让我们先回顾一下OOP基础,OOP的最基本单元是对象,它包含两部分:代码和数据。由于对象是一种以自己自足的形式出现,因此它的数据和代码(方法)不需要公开。就象一个黑盒子,对象负责以自身的方法去管理自身的数据,对象与对象之间通过传递信息通讯。这些信息以公用或公开的方式传递和接收。而内部的数据和方法并没有直接参与其中,这就是OOP的基本原理。
在OOP的设计中,比做是一张大图,要想到重点和要实现的目标,以及各个部分之间的联系。将这张大图分成小的单元,并且保证各自的自身独立性,那么整个项目就很容易完成。而这些小的单元在OOP中就被称为类。所有这些AS2都提供了很好的支持。
下面这些关键字与OOP有关:
class interface extends implements public private static dynamic import get set intrinsic 我们不在重复mcromedia的帮助文档中对每一关键字的描述,我们可以用实例来说明。注意关键字intrinsic是mcromedia内部使用的关键字。这里面没package也就包的关键字,但是它与类路径的工作方式是很重要的,就象是其它语言中的包一样,如JAVA。 下面我们来看一下例子,在AS1中的类,将其改写为AS2的类。 // 构造函数 _global.Parent = function(name) { this.init.apply(this, arguments); }; // 类的属性 Parent.lastNames = new Array(); Parent.prototype.init = function(name) { this.lName = name; Parent.lastNames.push(name); this.id = Parent.lastNames.length-1; trace("Added ’"+ Parent.lastNames[this.id] +"’ at: "+ this.id); }; Parent.prototype.getLastName = function() { return (this.lName); }; Parent.prototype.setLastName = function(s) { this.lName = s; Parent.lastNames[this.id] = s; }; Parent.prototype.getNames = function() { return (Parent.lastNames); }; Parent.prototype.addProperty("lastName", Parent.prototype.getLastName, Parent.prototype.setLastName); Parent.prototype.addProperty("names", Parent.prototype.getNames, null); 上面的代码改写为AS2就向下面这样: 新的关键字被应用在如下的例子中:class, private, public, static, get, set class Parent { private var lName:String = ""; private var id:Number; private static var lastNames:Array = new Array(); // 构造函数 public function Parent(name:String) { init.apply(this, arguments); } private function init(name:String):Void { lName = name; lastNames.push(name); id = lastNames.length-1; trace("Added ’"+ lastNames[id] +"’ at: " + id); } public function get lastName():String { return lName; } public function set lastName(s:String):Void { lName = s; lastNames[id] = s; } public function get names():Array { return lastNames; } } 通过上面的AS1和AS2执行同一个类。我们可以看出二者非常的相似,主要的不同以AS2为例: 1。以外部文件的形式存在如.as,同时注意类的名称要与外部文件名称相同。 2。AS2区分大小写,在AS2中object 和 Object是不同的。 3。类的方法定义在类的内部。 4。类的内部不在允许有内部类出现。 5。关键字如public,private,static等写在类方法或属性的前面。 6。数据类型写在方法或属性名称的后面如:name:string; 7.创建get|set方法更容易使用如下方法:[modifier] |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于Flash ActionScript 2.0 基础教程的所有评论