/** * mxml里面有三个函数,函数名分别为fun1、fun2、fun3, * 三个函数分别执行trace(1)、trace(2)、trace(3)。 * 同时有一个TextInput和一个Button,要求实现如下功能, * 点击Button,当TextInput的值为“fun1”的时候就执行下fun1函数, * 另两个函数依然如此。如果函数不存在,请给出Alert提示。 * (要求:不得使用if、switch等任何条件语句) */ <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" minWidth="955" minHeight="600" creationComplete="application1_creationCompleteHandler(event)"> <mx:Script> <!--[CDATA[ import mx.controls.Alert; import mx.events.FlexEvent; function fun1():void { trace(1); } function fun2():void { trace(2); } function fun3():void { trace(3); } function butFun(event:Event):void { var funName:String=ti.text; var ClassReference:Class=getDefinitionByName("T") as Class; var instance:Object=new ClassReference(); try { var fun:Function=instance[funName]; fun.call(); } catch (e:*) { mx.controls.Alert.show("函数没有找到 " + funName); } } protected function application1_creationCompleteHandler(event:FlexEvent):void { this.but.addEventListener('click', butFun, false, 0, true); } ]]--> </mx:Script> <mx:Button x="261" y="284" label="Button" id="but"/> <mx:TextInput x="261" y="254" id="ti"/> </mx:Application>