面向对象编程与ActionScript3.0基础解析
立即解锁
发布时间: 2025-08-20 00:32:02 阅读量: 1 订阅数: 3 


ActionScript 3.0 设计模式精髓
# 面向对象编程与 ActionScript 3.0 基础解析
## 1. 面向对象编程基础
### 1.1 自定义命名空间
命名空间在面向对象编程中用于确定定义、属性和方法的可见性。常见的有 public、protected、private 和 internal 等预定义命名空间,而自定义命名空间则较少使用,它是数据隐藏的典型方式。使用自定义命名空间就像在一个只有受邀客人知道密码的密室扑克游戏中雇了一个保镖守门。
创建和使用自定义命名空间的步骤如下:
1. 声明命名空间标识符。
2. 用自定义命名空间标识符作为定义的前缀。
3. 向尝试访问自定义定义的引用打开自定义命名空间。
#### 声明命名空间标识符
需要定义一个外部定义,通过 `namespace` 指令指定命名空间类型和名称,名称要与保存的 `.as` 文件名对应,还可选择重新定义 URI 字符串以避免命名冲突。示例代码如下:
```actionscript
package
{
[ visible ] namespace custom_name_space = "http://namespaces/customnamespace"
{
}
}
```
若不添加额外括号,代码可简化为:
```actionscript
package
{
public namespace custom_name_space = 'http://namespaces/customnamespace'
}
```
#### 应用自定义命名空间
定义好自定义命名空间后,可将其定义导入类中,并将其作为要自定义的定义的修饰符。示例代码如下:
```actionscript
package
{
import custom_name_space
public class Foo extends MovieClip
{
custom_name_space function aRandomFunction():void
{
}
}
}
```
#### 在类中打开命名空间
由于 Flash 不会自动使用自定义定义,需让编译器知道有访问权限。在要打开自定义命名空间的类中,可在创建定义后立即应用以下语句:
```actionscript
package
{
import Foo;
import custom_name_space;
public class DocumentClass extends Sprite
{
use namespace customNameSpace;
public function DocumentClass()
{
var foo:Foo= new Foo();
foo.aRandomFunction();
}
}
}
```
### 1.2 构建接口
可以使用 `interface` 关键字指令定义接口。接口定义的结构示例如下:
| 结构 | 说明 |
| --- | --- |
| `package [folder[, folder... ]]` | 包声明 |
| `interface IInterfaceName [ extends InterfaceName ]` | 接口声明,`I` 表示这是一个接口,可指定父接口 |
| `{ //BODY OF THE DEFINITION; }` | 接口主体 |
接口中的所有方法必须是公共的。
### 1.3 应对代码变更
在编程中,变更有时是好事,但多数情况下是坏事。简单的变更可能会导致大量的工作,因此应积极拥抱变更,将其隔离并像处理其他对象一样使用它。同时,不应过度依赖版本控制系统,代码的变更和回滚应通过继承和多态来实现。
### 1.4 面向对象编程的常见术语
| 术语 | 定义 |
| --- | --- |
| 类(Class) | 定义属性、状态和行为的分类,可在实例间共享和修改 |
| 对象(object) | 通过继承特征引用的实例化类型 |
| Object | 顶级类 |
| 统一建模语言(UML) | 用于构建大小型计算机应用程序模型的标准表示法 |
| 封装(Encapsulation) | 将行为分离并本地化到对象中的原则 |
| 抽象(Abstraction) | 缺乏细节的概括 |
| 组合(Composition) | 对象协作以实现特定行为的方式 |
| 委托(Delegation) | 使用其他对象的行为来实现原始对象传达的结果的过程 |
| 继承(Inheritance) | 子类继承父类属性和行为的方式 |
| 接口(Interface) | 对象上暴露的方法,其他对象可向其发送消息 |
| 实现(Implementation) | 声明方法体中使用的代码 |
| 私有(Private) | 限制属性/行为可见性到声明它们的作用域 |
| 子类(Subclass) | 属于父类层次结构的类 |
| 父类(Superclass) | 子类的父类 |
| 属性(Properties) | 构成对象状态的属性 |
| 行为(Behavior) | 对象的预期响应 |
| 消息(Mes
0
0
复制全文
相关推荐










