FLEX命名空间的本质
2010-07-26 12:11
225 查看
Flex命名空间本质
命名空间,即namespace。
Namespace类对象,只有两个属性,prefix和uri。Prefix,即前缀,在XML时才会用到。而uri属性是一个字符串类型,记录着Namespace对象的URI。URI是The Uniform Resource Identifier(统一资源定位符)的简写。Namespace的toString()和valueOf()都可以返回Namespace对象的uri属性。
Namespace的定义,即命名空间的定义是唯一的,唯一性是命名空间能够正常运转的前提,而且这个唯一性体现在uri属性值的唯一性。只有uri属性唯一,才能保证Namespace唯一。
保证uri唯一的两种方法:
1,明白无误地给uri赋一个独一无二的字符串。
public namespace mx_internal = "http://www.adobe.com/2006/flex/mx/internal";
2,让系统自动生成
namespace roy;
定义命名空间
1,定义在独立的.as文件中。
创建一个以命名空间的名字命名的“.as”文件,再在其中写入namespace的定义
2,定义在类中
命名空前可以有访问控制符,代码如下
class Foo
{
public namespace good;
public namespace bad;
public function getName():Namespace
{
return good;
}
good function hello():void
{
trace("Nice to meet you");
}
bad fuction hello():void
{
trace("Who are you?");
}
}
仅能通过Foo.good、Foo.bad来访问。说明使用namespace在类体中定义命名空间,则命名空间不是依附于每个实例的,而是相当于一种静态成员,属于整个类。
应用命名空间
class Foo
{
public namespace good;
public namespace bad;
public function getName():Namespace
{
return good;
}
good function hello():void
{
trace("Nice to meet you");
}
bad fuction hello():void
{
trace("Who are you?");
}
}
如上面红色代码所显示,表示在命名空间good和bad中分别放入了hello函数,但是是完全不同的两个方法。
在应用命名空间是要注意,每个类成员只可以应用一个命名空间。
打开命名空间(use namespace)
1,use namespace编译时会被提到前端,而且一旦打开,无法再关闭。
use namespace good;
var foo:Foo = new Foo();
foo.hello();
use namesapce bad;
以上代码会出现编译错误,因为use namespace在编译时会提前,因此,代码原型为:
use namespace good;
use namesapce bad;
var foo:Foo = new Foo();
foo.hello(); //hello()因为同时打开了两个命名空间,导致了模糊引用,编译出错。
2,use namespace指令不受上下文逻辑影响
只要任何一个地方出现了use namespace指令都会被直接提前,不受上下文逻辑影响。
命名空间,即namespace。
Namespace类对象,只有两个属性,prefix和uri。Prefix,即前缀,在XML时才会用到。而uri属性是一个字符串类型,记录着Namespace对象的URI。URI是The Uniform Resource Identifier(统一资源定位符)的简写。Namespace的toString()和valueOf()都可以返回Namespace对象的uri属性。
Namespace的定义,即命名空间的定义是唯一的,唯一性是命名空间能够正常运转的前提,而且这个唯一性体现在uri属性值的唯一性。只有uri属性唯一,才能保证Namespace唯一。
保证uri唯一的两种方法:
1,明白无误地给uri赋一个独一无二的字符串。
public namespace mx_internal = "http://www.adobe.com/2006/flex/mx/internal";
2,让系统自动生成
namespace roy;
定义命名空间
1,定义在独立的.as文件中。
创建一个以命名空间的名字命名的“.as”文件,再在其中写入namespace的定义
2,定义在类中
命名空前可以有访问控制符,代码如下
class Foo
{
public namespace good;
public namespace bad;
public function getName():Namespace
{
return good;
}
good function hello():void
{
trace("Nice to meet you");
}
bad fuction hello():void
{
trace("Who are you?");
}
}
仅能通过Foo.good、Foo.bad来访问。说明使用namespace在类体中定义命名空间,则命名空间不是依附于每个实例的,而是相当于一种静态成员,属于整个类。
应用命名空间
class Foo
{
public namespace good;
public namespace bad;
public function getName():Namespace
{
return good;
}
good function hello():void
{
trace("Nice to meet you");
}
bad fuction hello():void
{
trace("Who are you?");
}
}
如上面红色代码所显示,表示在命名空间good和bad中分别放入了hello函数,但是是完全不同的两个方法。
在应用命名空间是要注意,每个类成员只可以应用一个命名空间。
打开命名空间(use namespace)
1,use namespace编译时会被提到前端,而且一旦打开,无法再关闭。
use namespace good;
var foo:Foo = new Foo();
foo.hello();
use namesapce bad;
以上代码会出现编译错误,因为use namespace在编译时会提前,因此,代码原型为:
use namespace good;
use namesapce bad;
var foo:Foo = new Foo();
foo.hello(); //hello()因为同时打开了两个命名空间,导致了模糊引用,编译出错。
2,use namespace指令不受上下文逻辑影响
只要任何一个地方出现了use namespace指令都会被直接提前,不受上下文逻辑影响。
相关文章推荐
- Flex中处理带命名空间的XML
- Flex 4里的fx、mx以及s命名空间
- 【flex中的小问题累积】无法解析 CSS 选择器“ToolTip”中命名空间限定的类型“ToolTip”
- Flex 4里的fx、mx以及s命名空间
- 关于flex4 的命名空间的介绍 。
- [Flex]Flex SDK 4(Gumbo)命名空间(NameSpace)概述
- Flex中如何通过创建新的XML命名空间(namespace),在MXML中使用flash.filters类
- Python命名空间的本质
- 由“Jasperrpeorts 4.1.2升级到5.1.2对flex项目的解析”到AS3 带命名空间的XML的操作
- 第5课 Spark组件、Halo组件和Flex命名空间
- flex 自定义多个命名空间以及标签名 (转)
- Flex SDK 4(Gumbo)命名空间(NameSpace)概述
- Spark组件、Halo组件和Flex 4命名空间
- Flex 4命名空间
- 了解一下Flex 4里的fx、mx以及s命名空间
- Flex 组成、变量、函数、命名空间
- Flex 操作命名空间
- Flex中常用的命名空间
- Flex--Use Flex的命名空间 :mx_internal
- flex 自定义多个命名空间以及标签名 (转)