- 浏览: 1084909 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (695)
- 心情日记 (14)
- AS开发工具 (12)
- 文章转载 (99)
- AIR (5)
- 问题总结 (46)
- SWF格式 (7)
- 测试总结 (10)
- 外文资料 (9)
- 算法技术 (33)
- AS3常用开源库 (43)
- 源码范例 (102)
- FLEX (72)
- FLASH 优化 (33)
- 游戏开发 (49)
- 开发技术 (11)
- 工作应用 (34)
- AS3收集 (140)
- WebBase (0)
- 开发构想 (4)
- 设计模式 (2)
- 框架和框架范例 (19)
- RED5 (3)
- java开发 (3)
- JAVA (1)
- FLASH-3D (23)
- 3D (6)
- 书籍 (10)
- 业界信息资料 (3)
- C# (1)
- JavaScript (12)
- HTML5 (6)
- Flixel (1)
- D5Power RPG网页游戏引擎 (0)
- ColorMatrixFilter - 获得相应颜色的色调 函数 (0)
- Starling (0)
最新评论
-
老顽童203:
字体
水果忍者鼠标跟随特效制作[转载] -
hairball00:
[转] 放出超多的Flash组件源代码 -
he74552775:
flash AS3 RegExp简单功能用法(转) -
hanshuai1232000:
第四点,有利也有弊,等你做了大型的aprg,你就知道了
[转]位图数据内存优化 -
yangfantao:
太感谢
[转] 放出超多的Flash组件源代码
本文为frank的学习笔记,转载请注明原文链接
更多笔记请参看:http://www.2solo.cn/log/article.asp?id=87
在As3中,Namespace (命名空间)类包含用于定义和使用命名空间的方法和属性.其中使用方案有以下三 中:
XML 对象的命名空间
用于区分方法的命名空间
用于访问控制的命名空间
XML 对象的命名空间方法已经在前一篇笔记中做了小结,这篇blog我准备小结一下后两者,我综合在一 起,称为"Namespace控制方法和属性的访问".
通过帮助里的文档,我们可以发现,namespace其实类似public,private,,internal,protected,可以用 于自定义函数和属性的作用域.
以下为namespace的基本用法,摘自帮助:
使用命名空间时,应遵循以下三个基本步骤。第一,必须使用 namespace 关键字来定义命名空间。例如,下面的代码定义 version1 命名空间:
namespace version1;
第二,在属性或方法声明中,使用命名空间(而非访问控制说明符)来应用命名空间。 下面的示例将一个名为 myFunction() 的函数放在 version1 命名空间中:
version1 function myFunction() {}
第三,在应用了该命名空间后,可以使用 use 指令引用它,也可以使用 该命名空间来限定标识符的名称。下面的示例通过 use 指令来引用 myFunction() 函数:
use namespace version1;
myFunction();
您还可以使用限定名称来引用 myFunction() 函数,如下面的示例所示:
version1::myFunction();
下例通过定义和引用自定义的namespace实现了同名方法的分类访问.
/*@
Author:frank
Site:www.2solo.cn
Date:2008.02.08
Info:Namespace 函数控制测试
*/
package {
import flash.display.Sprite;
public class nsFunctionSample extends Sprite {
public function nsFunctionSample() {
var vocab:sayHello = new sayHello();
trace(vocab.hello());
trace(vocab.FR::hello());
trace(vocab.EN::hello());
}
}
}
namespace FR
namespace EN
class sayHello {
public function sayHello() {
trace(FR.uri);
}
public function hello():String {
return "你好";
}
EN function hello():String {
return "hello";
}
FR function hello():String {
return "bon jour";
}
public function getNS() {
return FR;
}
}
上例的输出结果为:
nsFunctionSample.as$0:FR
你好
bon jour
hello
再见下例:
/*@
Author:frank
Site:www.2solo.cn
Date:2008.02.08
Info:Namespace 函数控制测试
*/
package {
import flash.display.Sprite;
public class nsFunctionSample extends Sprite {
public function nsFunctionSample() {
var vocab:sayHello = new sayHello();
var ns=vocab.getNS();
trace(vocab.hello());
trace(vocab.ns::hello());
//trace(vocab.EN::hello());
}
}
}
//namespace FR
//namespace EN
class sayHello {
public namespace FR
public namespace EN
public function sayHello() {
trace(FR.uri);
}
public function hello():String {
return "你好";
}
EN function hello():String {
return "hello";
}
FR function hello():String {
return "bon jour";
}
public function getNS() {
return FR;
}
}
输出结果为:
nsFunctionSample.as$0:sayHello/FR
你好
bon jour
两个方法的区别在于FR和EN两个命名空间的定义域不同,从trace(FR.uri);可以看出,第一种方法定义的FR作用域为包内,而第二中方法定 义的作用域为类内部.从vocab.ns::hello()这句话可见,在第二中方法里,是先对FR命名空间做了引用才可 以访问到.而如果直接trace(vocab.EN::hello());则会报错.相比两种方法,第一种方法的使用比较方便. 可以通过use namespace来更方便的控制函数的访问.而第二种方法则对定义的控制更严谨.
下例子 为一个命名空间属性控制的实例,通过该实例可以延伸出程序版本控制的方法:
/*@
Author:frank
Site:www.2solo.cn
Date:2008.02.08
Info:Namespace 属性控制测试
*/
package {
import flash.display.Sprite;
public class nsPropertySample extends Sprite {
public function nsPropertySample() {
var vocab:sayHello = new sayHello("EN");
trace(vocab.hello());
}
}
}
class sayHello {
private namespace CN
private namespace FR
private namespace EN
CN var word="你好";
FR var word="bon jour";
EN var word="hello";
private var ns:Namespace;
public function sayHello(str) {
switch (str) {
case "CN" :
ns=CN;
break;
case "FR" :
ns=FR;
break;
case "EN" :
ns=EN;
break;
}
}
public function hello():String {
return ns::word;
}
}
两个范例的源文件:http://www.2solo.cn/upload/ns2_2soloDOTcn.zip.供参考.
更多笔记请参看:http://www.2solo.cn/log/article.asp?id=87
在As3中,Namespace (命名空间)类包含用于定义和使用命名空间的方法和属性.其中使用方案有以下三 中:
XML 对象的命名空间
用于区分方法的命名空间
用于访问控制的命名空间
XML 对象的命名空间方法已经在前一篇笔记中做了小结,这篇blog我准备小结一下后两者,我综合在一 起,称为"Namespace控制方法和属性的访问".
通过帮助里的文档,我们可以发现,namespace其实类似public,private,,internal,protected,可以用 于自定义函数和属性的作用域.
以下为namespace的基本用法,摘自帮助:
使用命名空间时,应遵循以下三个基本步骤。第一,必须使用 namespace 关键字来定义命名空间。例如,下面的代码定义 version1 命名空间:
namespace version1;
第二,在属性或方法声明中,使用命名空间(而非访问控制说明符)来应用命名空间。 下面的示例将一个名为 myFunction() 的函数放在 version1 命名空间中:
version1 function myFunction() {}
第三,在应用了该命名空间后,可以使用 use 指令引用它,也可以使用 该命名空间来限定标识符的名称。下面的示例通过 use 指令来引用 myFunction() 函数:
use namespace version1;
myFunction();
您还可以使用限定名称来引用 myFunction() 函数,如下面的示例所示:
version1::myFunction();
下例通过定义和引用自定义的namespace实现了同名方法的分类访问.
/*@
Author:frank
Site:www.2solo.cn
Date:2008.02.08
Info:Namespace 函数控制测试
*/
package {
import flash.display.Sprite;
public class nsFunctionSample extends Sprite {
public function nsFunctionSample() {
var vocab:sayHello = new sayHello();
trace(vocab.hello());
trace(vocab.FR::hello());
trace(vocab.EN::hello());
}
}
}
namespace FR
namespace EN
class sayHello {
public function sayHello() {
trace(FR.uri);
}
public function hello():String {
return "你好";
}
EN function hello():String {
return "hello";
}
FR function hello():String {
return "bon jour";
}
public function getNS() {
return FR;
}
}
上例的输出结果为:
nsFunctionSample.as$0:FR
你好
bon jour
hello
再见下例:
/*@
Author:frank
Site:www.2solo.cn
Date:2008.02.08
Info:Namespace 函数控制测试
*/
package {
import flash.display.Sprite;
public class nsFunctionSample extends Sprite {
public function nsFunctionSample() {
var vocab:sayHello = new sayHello();
var ns=vocab.getNS();
trace(vocab.hello());
trace(vocab.ns::hello());
//trace(vocab.EN::hello());
}
}
}
//namespace FR
//namespace EN
class sayHello {
public namespace FR
public namespace EN
public function sayHello() {
trace(FR.uri);
}
public function hello():String {
return "你好";
}
EN function hello():String {
return "hello";
}
FR function hello():String {
return "bon jour";
}
public function getNS() {
return FR;
}
}
输出结果为:
nsFunctionSample.as$0:sayHello/FR
你好
bon jour
两个方法的区别在于FR和EN两个命名空间的定义域不同,从trace(FR.uri);可以看出,第一种方法定义的FR作用域为包内,而第二中方法定 义的作用域为类内部.从vocab.ns::hello()这句话可见,在第二中方法里,是先对FR命名空间做了引用才可 以访问到.而如果直接trace(vocab.EN::hello());则会报错.相比两种方法,第一种方法的使用比较方便. 可以通过use namespace来更方便的控制函数的访问.而第二种方法则对定义的控制更严谨.
下例子 为一个命名空间属性控制的实例,通过该实例可以延伸出程序版本控制的方法:
/*@
Author:frank
Site:www.2solo.cn
Date:2008.02.08
Info:Namespace 属性控制测试
*/
package {
import flash.display.Sprite;
public class nsPropertySample extends Sprite {
public function nsPropertySample() {
var vocab:sayHello = new sayHello("EN");
trace(vocab.hello());
}
}
}
class sayHello {
private namespace CN
private namespace FR
private namespace EN
CN var word="你好";
FR var word="bon jour";
EN var word="hello";
private var ns:Namespace;
public function sayHello(str) {
switch (str) {
case "CN" :
ns=CN;
break;
case "FR" :
ns=FR;
break;
case "EN" :
ns=EN;
break;
}
}
public function hello():String {
return ns::word;
}
}
两个范例的源文件:http://www.2solo.cn/upload/ns2_2soloDOTcn.zip.供参考.
发表评论
-
一个基于STARLING的TOWER塔防游戏
2012-07-24 15:27 0一个基于STARLING的TOWER塔防游戏 -
HttpStatusConfig --一个HTTP 协议返回的 解析说明类
2012-04-18 16:40 0package guwanyuan.qicool.game ... -
水果忍者鼠标跟随特效制作[转载]
2012-03-01 16:06 2449实现这效果其实比较简单,主要是思路~! package ... -
ColorMatrixFilter - 获得相应颜色的色调 函数
2012-02-08 23:03 0/**获得相应颜色的色调的滤镜**/ public sta ... -
[教程] 路点导航(Waypoint Navigation)
2011-12-31 00:51 0前言:这个不难,所以知道的童鞋不要喷,不知道的童鞋也不要怕,要 ... -
Embed绑定XML与txt文本文件
2011-12-28 15:54 4648使用Embed标签可以将图片绑定到swf中并显示,那么我 ... -
弹弹堂测试
2011-12-08 04:21 0弹弹堂测试弹弹堂测试 -
一些DEMO
2011-11-28 17:42 0一些DEMO一些DEMO -
[转]三次贝尔曲线
2011-11-10 01:09 1923http://bbs.9ria.com/viewt ... -
[心得] 完美解决as3在ie中初始化时stageWidth和stageHeight为0的问题
2011-11-03 00:46 2938先看下面的一段脚本,这是比较经典的初始化脚本: pa ... -
五子棋算法详解
2011-10-31 04:14 0五子棋算法详解五子棋算法详解五子棋算法详解 -
[转]服务器端ActionScript语言参考
2011-10-31 00:29 0服务器端ActionScript语言参考 -
2个加载作用
2011-10-24 22:14 1868第一话:加载Base64 encoded string 通过 ... -
[转] 一种完全没有边缘痕迹的渐变AS做法
2011-10-23 00:21 1882http://bbs.9ria.com/viewthread. ... -
[心得] localToGlobal 和 globalToLocal 的理解
2011-10-20 03:10 0http://bbs.9ria.com/viewthread. ... -
翻译: Flash文本引擎, 第二部分: 交互
2011-10-20 02:34 0http://www.riadev.com/flex-thre ... -
翻译: Flash文本引擎, 第一部分: 概述
2011-10-20 02:33 0http://www.riadev.com/flex-thre ... -
珍宝探索 AS3-过关类小游戏
2011-10-13 02:15 0珍宝探索 AS3-过关类小游戏 -
设计模式(23种设计模式.AS3实现)
2011-10-13 02:04 0设计模式(23种设计模式.AS3实现) -
图片相册代码_photo_gallery
2011-10-12 11:17 0图片相册代码_photo_gallery
相关推荐
#### 二、命名空间 **1. 命名空间的作用:** - **避免命名冲突:** 命名空间可以避免类名或函数名的冲突,使得代码更加健壮。 - **组织代码:** 命名空间可以帮助开发者更好地组织代码,提高代码的可读性和可维护...
- **默认访问控制**:在C++中,`struct` 和 `class` 的唯一区别在于默认的访问级别不同。`struct` 默认成员是公有的(`public`),而 `class` 默认成员是私有的(`private`)。 #### 十二、默认参数 - **规则**:在...
解2: select top 10 * from A where id > (select max(id) from (select top 30 id from A )as A) 34.面向对象的语言具有________性、_________性、________性 答:封装、继承、多态。 35.能用foreach遍历访问的...
### WebService 学习笔记详解 #### 一、实验环境搭建与配置 在开始Web Service的学习之前,首先需要搭建一个适合开发的环境。本实验基于以下配置: - 操作系统:Windows 2000 (Win2k) - JDK版本:1.6 - Java EE...
1. 控制流关键字:`as`, `else`, `switch`, `break`, `export`, `item`, `this`, `case`, `extends`, `namespace`, `throw` 2. 声明关键字:`catch`, `false`, `new`, `true`, `class`, `finally`, `null`, `try`, `...
### Flex新手教程_入门级学习笔记 #### ActionScript核心概念 **ActionScript(简称AS)** 是一种面向对象的编程语言,主要用于开发Flex应用程序。掌握AS的基础知识对于学习Flex至关重要。 ##### 类和对象 (Class...
- **Commons-logging**:ASF的日志包,允许Struts2灵活地支持各种日志框架,如Log4j。 2. **Struts2的部署与配置**: - **创建WEB项目**:首先需要创建一个标准的Java Web项目。 - **导入jar包**:将上述依赖的...
此外,还有一些**转义字符**,用于表示特殊的控制字符,例如`\n`(换行)、`\t`(制表符)等。 #### 实数型 C# 支持两种浮点类型:`float` 和 `double`。这两种类型的主要区别在于精度和存储空间的大小。`float` ...
它不仅提供邮件管理功能,还支持日程安排、任务管理、联系人管理和笔记等。"遍历Outlook, 分析内容"这个主题涉及到如何通过编程方式访问并处理Outlook中的数据,这通常涉及到自动化脚本或应用的开发。在本文中,我们...
首先声明,这是看到国外论坛上的学习文章后,独立翻译过来作为笔记用,加入部分自我理解,并且全部原创。 介绍: libusb是一个开源库,可以帮助开发者在用户空间的层面上与UBS设备进行通讯。如果想了解更多,可以...