Java代码 package reflect { import mx.controls.Alert; import mx.utils.ObjectProxy; public dynamic class ReflectTest extends ObjectProxy { public function ReflectTest() { } public function flex():void{ mx.controls.Alert.show("hello"); } public function test(args:String):void{ Alert.show("参数是"+args); } } } package reflect { import mx.controls.Alert; import mx.utils.ObjectProxy; public dynamic class ReflectTest extends ObjectProxy { public function ReflectTest() { } public function flex():void{ mx.controls.Alert.show("hello"); } public function test(args:String):void{ Alert.show("参数是"+args); } } }
Java代码 package objectProxy { import flash.utils.flash_proxy; import mx.utils.ObjectProxy; import mx.utils.object_proxy; //public namespace std="hello"; use namespace object_proxy; use namespace flash_proxy; //不继承也行。这也是测试类。同上边基本没关系。这部继承也没关系 public dynamic class ObjectTest extends ObjectProxy { public function ObjectTest(item:Object=null, uid:String=null, proxyDepth:int=-1) { super(item, uid, proxyDepth); this._item=item; } private var _item:Object; public function callMethod(name:*,...rest):*{ callProperty(name,rest); } override flash_proxy function callProperty(name:*, ... rest):* { return _item[name].apply(_item,rest); } public function callMethod2(methodName:String,array:Array):void{ _item[methodName].call(_item,array); } } } package objectProxy { import flash.utils.flash_proxy; import mx.utils.ObjectProxy; import mx.utils.object_proxy; //public namespace std="hello"; use namespace object_proxy; use namespace flash_proxy; //不继承也行。这也是测试类。同上边基本没关系。这部继承也没关系 public dynamic class ObjectTest extends ObjectProxy { public function ObjectTest(item:Object=null, uid:String=null, proxyDepth:int=-1) { super(item, uid, proxyDepth); this._item=item; } private var _item:Object; public function callMethod(name:*,...rest):*{ callProperty(name,rest); } override flash_proxy function callProperty(name:*, ... rest):* { return _item[name].apply(_item,rest); } public function callMethod2(methodName:String,array:Array):void{ _item[methodName].call(_item,array); } } }
Java代码 <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <mx:Script> <![CDATA[ import objectProxy.ObjectTest; import mx.rpc.remoting.mxml.RemoteObject; import reflect.ReflectTest; import mx.utils.ObjectProxy; private function test():void{ var reflect:ReflectTest=new ReflectTest; var objs:ObjectTest=new ObjectTest(reflect); // /objs.flex(); objs.callMethod("test","hello"); objs.callMethod2("test",new Array("haha")); } ]]> </mx:Script> <mx:Button> <mx:click> <![CDATA[ test(); ]]> </mx:click> </mx:Button> </mx:Application>