先来看一个例子
//ns.as
package {
public namespace ns = "http://www.sample.com/ns";
}
//A.as
package {
use namespace ns;
public class A {
//public 变量
public var val:int = 1;
//ns 变量
ns var val:int = 2;
//public 函数
public function foo():void {
trace("foo1");
}
//ns 函数
ns function foo():void {
trace("foo2");
}
}
}
普通(静态)访问
var a:A = new A();
//public 变量
trace(a.val); // ->1
//ns 变量
trace(a.ns::val); // ->2
//public 函数
a.foo(); // ->foo1
//ns 函数
a.ns::foo(); // ->foo2
在这里,不能用use namespace ns;因为他会与public命名空间发生冲突。
动态访问
var a:A = new A();
//public 变量
trace(a["val"]); // ->1
//ns 变量
trace(a.ns::["val"]); // ->2
//public 函数
a.["foo"](); // ->foo1
//ns 函数
a.ns::["foo"](); // ->foo2
在这里,也不能用use namespace ns;因为他会与public命名空间发生冲突。
![[Google]](http://www.google.com/logos/Logo_25wht.gif)
![[Synchronous Space]](http://weihe924stephen.googlepages.com/syncspace-banner.jpg)
![[Creative Commons License]](http://i.creativecommons.org/l/by-nc-sa/3.0/88x31.png)
![[Add to Google]](http://buttons.googlesyndication.com/fusion/add.gif)
![[Aggregated by MXNA]](http://weblogs.macromedia.com/mxna/images/mxna88x31.gif)
![[Flex.org]](http://www.flex.org/images/flexorg.gif)
![Validate my Atom 1.0 feed [Valid Atom 1.0]](http://validator.w3.org/feed/images/valid-atom.png)
![Validate my RSS feed [Valid RSS]](http://resource.googlecode.com/files/valid-rss.png)
![[I heart FeedBurner]](http://www.feedburner.com/fb/images/pub/i_heart_fb.gif)
没有评论:
发表评论