`
strugglesMen
  • 浏览: 115282 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

ActionScript3学习笔记2-包

阅读更多

在 ActionScript 3.0 中,包是用命名空间实现的,但包和命名空间并不同义。在声明包时,
可以隐式创建一个特殊类型的命名空间并保证它在编译时是已知的。显式创建的命名空间在
编译时不必是已知的。 
下面的示例使用 package 指令来创建一个包含单个类的简单包: 
package samples
{
    public class SampleCode
   {
        public var sampleGreeting:String;
        public function sampleFunction()
        {
              trace(sampleGreeting + " from sampleFunction()");
        }
   }
}
在本例中,该类的名称是 SampleCode。由于该类位于 samples 包中,因此编译器在编译
时会自动将其类名称限定为完全限定名称:samples.SampleCode。编译器还限定任何属性
或方法的名称,以便 sampleGreeting 和 sampleFunction() 分别变成 
samples.SampleCode.sampleGreeting 和 samples.SampleCode.sampleFunction()。
许多开发人员(尤其是那些具有 Java 编程背景的人)可能会选择只将类放在包的顶级。但是,
ActionScript 3.0 不但支持将类放在包的顶级,而且还支持将变量、函数甚至语句放在包的顶
级。此功能的一个高级用法是,在包的顶级定义一个命名空间,以便它对于该包中的所有类均
可用。但是,请注意,在包的顶级只允许使用两个访问说明符:public 和 internal。Java 允
许将嵌套类声明为私有,而 ActionScript 3.0 则不同,它既不支持嵌套类也不支持私有类。
但是,在其它许多方面,ActionScript 3.0 中的包与 Java 编程语言中的包非常相似。从上一
个示例可看出,完全限定的包引用点运算符 (.) 来表示,这与 Java 相同。可以用包将代码组
织成直观的分层结构,以供其他程序员使用。这样,您就可以将自己所创建的包与他人共享,
还可以在自己的代码中使用他人创建的包,从而推动了代码共享。 
使用包还有助于确保所使用的标识符名称是唯一的,而且不与其它标识符名称冲突。事实
上,有些人认为这才是包的主要优点。例如,假设两个希望相互共享代码的程序员各创建了
一个名为 SampleCode 的类。如果没有包,这样就会造成名称冲突,唯一的解决方法就是重
命名其中的一个类。但是,使用包,就可以将其中的一个(最好是两个)类放在具有唯一名
称的包中,从而轻松地避免了名称冲突。

创建包
ActionScript 3.0 在包、类和源文件的组织方式上具有很大的灵活性。早期的 ActionScript
版本只允许每个源文件有一个类,而且要求源文件的名称与类名称匹配。 ActionScript 3.0
允许在一个源文件中包括多个类,但是,每个文件中只有一个类可供该文件外部的代码使
用。换言之,每个文件中只有一个类可以在包声明中进行声明。您必须在包定义的外部声明
其它任何类,以使这些类对于该源文件外部的代码不可见。在包定义内部声明的类的名称必
须与源文件的名称匹配。
ActionScript 3.0 在包的声明方式上也具有更大的灵活性。在早期的 ActionScript 版本中,
包只是表示可用来存放源文件的目录,您不必用 package 语句来声明包,而是在类声明中将
包名称包括在完全限定的类名称中。在 ActionScript 3.0 中,尽管包仍表示目录,但是它现
在不只包含类。在 ActionScript 3.0 中,使用 package 语句来声明包,这意味着您还可以
在包的顶级声明变量、函数和命名空间,甚至还可以在包的顶级包括可执行语句。如果在包
的顶级声明变量、函数或命名空间,则在顶级只能使用 public 和 internal 属性,并且每
个文件中只能有一个包级声明使用 public 属性 (无论该声明是类声明、变量声明、函数声
明还是命名空间声明)。 
包的作用是组织代码并防止名称冲突。您不应将包的概念与类继承这一不相关的概念混淆。
位于同一个包中的两个类具有共同的命名空间,但是它们在其它任何方面都不必相关。同
样,在语义方面,嵌套包可以与其父包无关。

导入包
如果您希望使用位于某个包内部的特定类,则必须导入该包或该类。这与 ActionScript 2.0
不同,在 ActionScript 2.0 中,类的导入是可选的。 
以本章前面的 SampleCode 类示例为例。如果该类位于名为 samples 的包中,那么,在使
用 SampleCode 类之前,您必须使用下列导入语句之一:
import samples.*;
或者
import samples.SampleCode;
通常,import 语句越具体越好。如果您只打算使用 samples 包中的 SampleCode 类,则应只导
入 SampleCode 类,而不应导入该类所属的整个包。导入整个包可能会导致意外的名称冲突。
还必须将定义包或类的源代码放在类路径 内部。类路径是用户定义的本地目录路径列表,它
决定了编译器将在何处搜索导入的包和类。类路径有时称为 “生成路径”或“源路径”。 
在正确地导入类或包之后,可以使用类的完全限定名称 (samples.SampleCode),也可以只
使用类名称本身 (SampleCode)。
当同名的类、方法或属性会导致代码不明确时,完全限定的名称非常有用,但是,如果将它
用于所有的标识符,则会使代码变得难以管理。例如,在实例化 SampleCode 类的实例时,
使用完全限定的名称会导致代码冗长:
var mySample:samples.SampleCode = new samples.SampleCode();

分享到:
评论

相关推荐

    Flex 开发学习笔记4 - 应用分页列表组件

    Flex开发学习笔记4主要关注的是如何在Flex应用中实现分页列表组件,这对于构建大型数据展示界面至关重要。Flex是一个开源的、基于ActionScript的框架,用于创建富互联网应用程序(RIA)。在这里,我们不仅会探讨Flex...

    Flex 开发学习笔记6.2 - 引用自定义的 Flex Library Project

    这个"Flex 开发学习笔记6.2 - 引用自定义的 Flex Library Project"着重讲解了如何创建和引用这样的库项目。让我们深入探讨这个主题。 首先,Flex Library Project是一种特殊的项目类型,它的目标是生成SWC(Adobe ...

    flash+actionscript学习的实例和教程

    本资源包包含了关于"flash+actionscript学习的实例和教程",旨在帮助初学者和进阶者深入理解和掌握这两个工具。 **Flash ActionScript 3.0** ActionScript是Flash平台的编程语言,从早期的ActionScript 1.0和2.0...

    Flash ActionScript 3 殿堂之路 笔记

    以上是AS3的基础知识,这些内容构成了进一步学习ActionScript 3编程的基石。通过掌握这些,开发者能够更有效地编写和调试代码,构建交互式的Flash应用程序。继续深入,还会涉及到类、包、继承、接口、事件处理等更...

    Flex 开发学习笔记6.1 - 创建 Flex Library Project

    Flex开发学习笔记6.1主要聚焦于创建Flex Library Project,这是一种在Adobe Flex开发环境中构建可重用组件的方式。Flex Library Project允许开发者创建自定义组件,这些组件可以被多个应用程序共享,提高了代码复用...

    Flex学习笔记-基本语法

    在本文中,我们将深入探讨Flex学习过程中的基础语法,特别是从AS2到AS3的变化。 首先,ActionScript 3(AS3)是AS的一个重大升级,它引入了完全的面向对象编程(OOP)概念。这意味着AS3具有类、继承、封装和多态性...

    ActionScript3.0 Cookbook 学习笔记

    ### ActionScript 3.0 (AS3) 基础:代码放置与包管理 在ActionScript 3.0(AS3)中,代码的组织和放置方式与之前的版本有显著差异。AS3引入了更现代、面向对象的编程结构,这包括使用`package`关键字来组织类和代码...

    ----AS3学习笔记

    而文件"〔分享〕AS3学习笔记 - RIACHINA 中国RIA开发者论坛 - Powered by Discuz!NT.htm"可能包含了社区论坛上关于AS3学习的经验分享、示例代码或疑难解答等内容,是深入学习AS3的好资源。对于初学者而言,理解AS3的...

    Flash.ActionScript.3.0 基础教程 学习笔记(上机)

    《Flash ActionScript 3.0 基础教程学习笔记》是针对初学者精心编写的指导资料,旨在帮助读者快速掌握ActionScript 3.0这一强大的编程语言在Flash中的应用。ActionScript 3.0是Adobe Flash Professional和Flash ...

    As3殿堂之路学习笔记

    AS3殿堂之路的学习笔记旨在帮助初学者理解AS3的基础概念,掌握核心语法,以便在开发富媒体内容和游戏时游刃有余。通过深入学习这些知识点,开发者可以构建功能丰富的交互式应用程序,并逐步进阶到更高级的编程实践。

    Flex学习笔记-由浅入深

    开发者可以通过ActionScript 3(AS3)编程语言与Flex类库进行交互,实现丰富的图形界面和交互功能。 创建Flex应用程序的步骤主要包括:首先,新建项目工程,定义工程名称和路径,并选择运行环境(如Web或Desktop)...

    PV3d Papervision3d API文档+学习笔记+全景案例

    "pv3d学习笔记 (2).rar"和"pv3d学习笔记.rar"中可能包含了作者在实践中遇到的问题、解决方法、示例代码以及对PV3D特性的深入理解。这些笔记可以帮助初学者快速上手,避免重复踩坑,同时也为有经验的开发者提供了新的...

    as3学习笔记

    这篇学习笔记概述了一些AS3的关键知识点,包括改变SWF属性、鼠标坐标、变量类型的检查、数据类型的传递方式、逻辑运算符的优化、Timer类的使用、访问控制修饰符以及异常处理。 1. **改变SWF属性**: AS3允许开发者...

    Away3D_4.1+Flex4.7学习笔记+案例

    《Away3D_4.1+Flex4.7学习笔记与案例解析》 Away3D是一个强大的开源3D引擎,专为Adobe Flash平台设计,它允许开发者创建丰富的、交互式的三维应用程序。本学习笔记结合Flex4.7框架,将深入探讨如何在Flash平台上...

    ActionScript 3.0入门教程ppt

    - **做笔记**:记录学习过程中的关键点,加强记忆。 5. **与Java和C++的比较**: - **相同之处**:AS3的变量类型和定义方法与Java和C++相似,都支持基本数据类型(如int、String等)和引用类型(如类实例)。 - ...

Global site tag (gtag.js) - Google Analytics