与大家分享一下AS3中 ,另一种访问类成员以及函数的方式
1)本人语言表达能力欠缺,博客内容以代码为主
2)欢迎各位大虾拍砖
上代码:
package
{
public class TestCls
{
private var a:String;
private var b:String;
private var c:String;
public function TestCls()
{
a = "this is a";
b = "this is b";
c = "this is c";
}
public function func1():void
{
trace("func1");
}
public function func2():void
{
trace("func2")
}
public function func3():void
{
trace("func3")
}
/**
* 根据变量名取指定的变量
**/
public function getVars(varName:String):*
{
return this[varName];
}
/***
* 根据函数名,取指定的函数
**/
public function getFunByName(funName:String):Function
{
return this[funName] as Function;
}
/***
* 根据函数名,运行指定函数
**/
public function executeFunByName(funName:String):void
{
this[funName]();
}
public function testMain():void
{
//--执行 函数名为 func1 的函数
this.executeFunByName("func1");
//--取名为 func2 的函数并执行
var tmpFunc2:Function = this.getFunByName("func2");
tmpFunc2.apply();
//--取名为a的变量
var tmp:* = this.getVars("a");
trace (tmp);
}
}
}
以上是代码
下面,新建一TestCls实例,并且执行 testMain()函数
***********
var t:TestCls = new TestCls();
t.testMain();
***********
这是运行的结果:
-----------------------------------------------------
func1
func2
this is a
----------------------------------------------------
ps:
//--函数还可以这样用哦
var tmpFunc3:Function = this.func3;
tmpFunc3();