根据字符串内容动态调用相应函数
前段时间在做一个程序的时候,遇到需要根据字符串内容调用相应函数的情况,如:从服务器端获取到XML数据文件,需要根据其中command节点的内容来调用相对应的函数,若command节点为”login”,则调用on_login函数,节点内容为”register”,则调用on_register函数…
最开始比较简单,我都是根据字符串内容来switch,这样不太好,经
为了程序结构清楚,我建立了一个名为Commandhandler的类,利用getInstance()获取其单例,再定义一commandManager方法,该方法便是根据传入的字符串参数去调用相应的方法,其关键是以[]的方式调用方法,当然在调用之前最好判断是否存在这样的方法。
commandManager函数代码如下:
public function commandManager(func:String):String { var functionName:String = "on_" + func; var str:String; if(this.hasOwnProperty(functionName)) { return this[functionName](); } return null; }
点击运行示例,在示例上右键点击可查看源码。
Tags: ActionScript3, Flex3