- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
命名空间是当您希望以一种无法由四个访问控制说明符(public、private、internal 和 protected)实现的方式提供对方法或属性的访问时,命名空间也可能会非常有用。例如,您可能有几个分散在多个包中的实用程序方法。您希望这些方法对于您的所有包均可用,但是您不希望这些方法成为公共方法。为此,您可以创建一个新的命名空间,并将它用作您自己的特殊访问控制说明符。
?
下面的示例使用用户定义的命名空间将两个位于不同包中的函数组合在一起。通过将它们组合到同一个命名空间中,可以通过一条 use namespace 语句使这两个函数对于某个类或某个包均可见。本示例使用四个文件来说明此方法。所有的文件都必须位于您的类路径中。第一个文件(myInternal.as) 用来定义 myInternal 命名空间。由于该文件位于名为 example 的包中,因此您必须将该文件放在名为 example 的文件夹中。该命名空间标记为 public,因此可以导入到其它包中。// example 文件夹中的 myInternal.aspackage example{public namespace myInternal = /2006/actionscript/examples;}
?
第二个文件 (Utility.as) 和第三个文件 (Helper.as) 定义的类中包含应可供其它包使用的方法。Utility 类位于 example.alpha 包中,这意味着该文件应放在 example 文件夹下的alpha 子文件夹中。Helper 类位于 example.beta 包中,这意味着该文件应放在 example 文件夹下的 beta 子文件夹中。这两个包(example.alpha 和 example.beta)在使用命名空间之前必须先导入它。// example/alpha 文件夹中的 Utility.aspackage example.alpha{import example.myInternal;public class Utility{private static var _taskCounter:int = 0;public static function someTask(){_taskCounter++;}myInternal static function get taskCounter():int{return _taskCounter;}}}// example/beta 文件夹中的 Helper.aspackage example.beta
{import example.myInternal;public class Helper{private static var _timeStamp:Date;public static function someTask(){_timeStamp = new Date();}myInternal static function get lastCalled():Date{return _timeStamp;}}}
?
第四个文件 (NamespaceUseCase.as) 是主应用程序类,应是 example 文件夹的同级。在Adobe Flash CS3 Professional 中,将此类用作 FLA 的文档类。NamespaceUseCase 类还导入 myInternal 命名空间,并使用它来调用位于其它包中的两个静态方法。在本示例中,使用静态方法的目的仅在于简化代码。在 myInternal 命名空间中既可以放置静态方法也可以放置实例方法。// NamespaceUseCase.aspackage{import flash.display.MovieClip;import example.myInternal; // 导入命名空间import example.alpha.Utility; // 导入 Utility 类import example.beta.Helper; // 导入 Helper 类public class NamespaceUseCase extends MovieClip{public function NamespaceUseCase(){use namespace myInternal;Utility.someTask();Utility.someTask();trace(Utility.taskCounter); // 2Helper.someTask();trace(Helper.last
文档评论(0)