自定义命名空间:使用关键字namespace定义命名空间,声明属性和方法时,应用命名空间。
AS 代码:
Namespace testSpace="org.blogjava.jm/ testSpace ";
testSpace myfunction2():void{}
调用使用 use 关键字打开命名空间
use mySpace2;
myfunction2();
2. Local 变量特点
与java不同的是,在as3中,变量没有块级作用域(即两人大括号中间),如果在一个块内声明了一个变量,比如一个for循环内声明了一个变量,它在该代码所在整个函数内都是可访问的。
function myFunction():void{
for(var i:int=0;i<5:i++){
var last:int = i;
}
trace(last);
}
last 在 for 中定义但可以在 for 块外面访问到,个人觉得这样设计欠妥,尽管很方便。
3 Dynamic 类
Object 类本身就是动态类,当然也可以用 dynamic 关键字来声明一个类,所谓动态就是在运行时可以对类追加属性和方法。
dynamic class Protean{}
var myProtean:Protean = new Protean();
myProtean.name = "jack.wang";
myProtean.password = 3;
trace(myProtean. name , myProtean. password );
定义函数的两种方式:函数语句和函数表达式
//函数语句声明
Function fun1():void{}
//函数表达式声明
var fun2:Function = function():void{}
函数表达式声明的函数是不能够被垃圾回收的,必须显示的调用 delete 命令。
var t:Test = new Test(); //t是动态类Test的一个实例
t.funt = function(){};//把一个函数声明为t的一个属性
delete t.funt; //删除刚才新增的函数,我们刚才声明的函数也被回收了
当然也可以用类似 java 的形式
function traceArgArray(x: int, args)
6 在as3中允许定义同名的静态属性和实例属性
class StaticTest
{
static var message:String = "static variable";
var message:String = "instance variable";
}
// 在脚本中
var myST:StaticTest = new StaticTest();
trace(StaticTest.message); // 输出:静态变量
trace(myST.message); // 输出:实例变量
7 在as中有一个叫做set和get存取器的东西,类似JavaBean,但又有所不同。
class GetSe
t{
private var privateProperty:String;
public function get publicAccess():String
{
return privateProperty;
}
public function set publicAccess(setValue:String):void
{
privateProperty = setValue;
}
}