可以说我有一个类cMenu,它有一个函数displayMenu()。该函数调用一个子类中的静态函数的init(),这取决于传递给displayMenu(),像这样:As3:传递类作为参数,并调用静态方法
cMenu.displayMenu('cMenuMain');
public class cMenu
{
public static function displayMenu(sMenu:String):void{
switch(sMenu) {
case 'cMenuMain':
cMenuMain.init();
break;
case 'cMenuHighscore':
cMenuHighscore.init();
break;
}
}
}
public class cMenuMain
{
public static function init():void{
trace('cMenuMain');
}
}
我的问题:我可以以某种方式避免了开关,并调用子菜单的函数init()动态地根据sMenu设置为什么? 类似于eval(sMenu+'.init()');
感谢提示!
Thx这就是我正在寻找的! – Ilyssis 2013-04-21 11:37:48
这并不意味着你将不得不为所有不同的类都有一个大的if/else语句吗? – 2013-04-21 21:24:05