`

flex反射

    博客分类:
  • flex
阅读更多
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
	<mx:Script>
		<![CDATA[
			import reflect.ReflectTest;
			import mx.controls.Alert;
			import flash.utils.getDefinitionByName;
			
			private function test():void{
				mx.controls.Alert.show("flex 反射");
			}
			private function test2():void{
				
				var tt:Function=this.test;
				tt.apply(this,null);
				
				tt.call(this);
			}
			
			
			//反射调用方法
			private function test3():void{
				var cla:Class=getDefinitionByName("reflect.ReflectTest") as Class;
				var instance:Object=new cla();
				if(instance.hasOwnProperty("flex")){
					var fun:Function=instance["flex"];
					fun.apply(this);
					Alert.show("调用成功 哈哈");
				}
				
			}
		
			private function test4():void{
				var refle:ReflectTest=new ReflectTest;
				var fun:Function=refle.flex;
				fun.call(this);//不知道this属性是干什么用的
				
			}
			private function test5():void{
				var refle:ReflectTest=new ReflectTest;
				refle["flex"].apply();//网上一直有这种写法,老认为不可能,也没去试
			}
		]]>
	</mx:Script>
	
	<mx:Button click="test3()">
		
	</mx:Button>
</mx:Application>

 

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 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);
    	}
	}
}

 

<?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>

 

 

分享到:
评论

相关推荐

    Flex 反射示例

    Flex反射是Adobe Flex框架中的一个重要特性,它允许在运行时检查和操作类、对象、方法、属性等元数据。在Flex编程中,反射提供了一种动态访问和操作应用程序组件的能力,即使在编译时未知其具体类型的情况下也可以...

    Flex 开发类的反射

    ### Flex开发中的类反射技术详解 #### 引言 随着Flex技术在富互联网应用(RIA)领域的广泛应用,其独特的能力,如强大的图形处理能力和高效的数据处理机制,使其成为开发高性能Web应用的首选工具之一。Flex的灵活...

    flex特效编辑器 开发flex游戏的利器

    光线效果对于创造真实感和氛围至关重要,例如,它可以模拟阳光、聚光灯或者环境反射等,提升游戏的沉浸感。 在学习和使用Flex特效编辑器时,开发者应掌握基本的Flex编程知识,了解ActionScript和MXML,这是Flex应用...

    C#与flex交互

    - C#可以通过反射或委托机制来调用Flex中的方法。在C#端创建一个委托,对应Flex中的方法签名,然后在需要调用Flex方法时,通过Flash控件发送消息到Flex端,由Flex端的事件监听器接收并执行相应的方法。 5. **通信...

    Flex前端与Java服务端交互反射机制.doc

    《Flex前端与Java服务端交互反射机制》 在软件开发中,前端与后端的交互是必不可少的一部分。本文主要探讨了使用Flex作为富互联网应用程序(RIA)前端与Java服务端进行交互的反射机制。Flex以其丰富的用户体验和...

    Flex开源项目

    8. **ReflexUtil**: 一个反射组件类,可用于动态操作和检查Flex对象。 9. **flex-object-handles**: 提供对象处理功能,通过XML配置实现对象的操作,但可能需要根据具体需求进行定制。 10. **CheckboxTree 和 ...

    Flex 和 java 整合 教程

    4. **Spring**:SpringFactory类和反射机制,用于管理和实例化后端服务。 5. **业务层**:基于Spring框架,使用Hibernate处理数据库操作,实现业务逻辑。 6. **Flex Application, Module, Component**:Flex前端应用...

    Flex控制SWF播放

    如果SWF文件内部没有暴露必要的控制接口,我们可能需要通过反射或者其他方式与SWF进行通信。ActionScript 3的`flash.utils.getDefinitionByName()`函数可以帮助我们获取SWF内部的类或函数。 6. **Flex与Flash集成...

    Flex 逼真海洋效果

    - **ColorTransform**:用于改变DisplayObject的颜色和透明度,我们可以用它来模拟阳光照射下的海面反射和阴影。 - **GradientFill** 和 **LinearGradient**:这些可以用来创建海浪的深度感,通过渐变从深蓝色到浅...

    flex 超炫的3d效果+源码

    通过Away3D,你可以创建旋转、缩放、平移等基本3D变换,还可以实现更复杂的3D特效,如阴影、反射、折射和粒子系统。 Flare3D则是一个更加面向设计师的3D框架,它支持导入3D模型(如3DS Max或Maya导出的模型),并...

    flex3d实例

    Flex 3D支持多种光照类型(如点光源、平行光等)和材质属性(如颜色、镜面反射、环境贴图等),让3D模型更具真实感。 5. **动画和交互**:Flex 3D提供了丰富的动画控制机制,可以创建平滑的3D过渡效果。同时,用户...

    Flex通信-Java服务端通信实例

    这通常涉及到创建一个Spring MVC或Servlet,处理HTTP请求,并通过Java的反射机制或其他手段解析AMF消息。在Spring MVC中,可以创建一个Controller,使用注解如`@RequestMapping`来定义处理的URL路径。 接着,Flex...

    将 Flex 集成到 Java EE 应用程序的最佳实践(完整源代码)

    由于 BlazeDS 需要将 Java 接口 FlexService 暴露给 Flex 前端,因此,我们在配置文件 remoting-config.xml 中将 FlexService 接口声明为一个服务: 清单 6. 定义 flexService 服务 &lt;destination id="flex...

    flex超炫倒影效果

    在本文中,我们将深入探讨如何使用Flex实现超炫的倒影效果,并且将重点放在如何调整模糊程度和影子长度。Flex是一种强大的CSS3布局模式,允许开发者在各种屏幕尺寸和方向上创建灵活、响应式的网页设计。倒影效果则是...

    ActionScript教程 Flex教程 ActionScript+Flex教程

    - **高级主题**:异常处理、反射、泛型等。 - **游戏开发**:物理引擎的使用、碰撞检测、游戏循环等。 #### 四、Flex教程 - **MXML基础**:MXML元素、属性、样式和脚本的使用。 - **组件和容器**:标准UI组件(如...

    +Flex+集成到+Java+EE+应用程序的最佳实践(完整源代码)

    由于 BlazeDS 需要将 Java 接口 FlexService 暴露给 Flex 前端,因此,我们在配置文件 remoting-config.xml 中将 FlexService 接口声明为一个服务: 清单 6. 定义 flexService 服务 &lt;destination id="flex...

    Unity镜子效果、镜面反射效果(无需Shader)即可实现

    无需自己找镜子Shader,只需2个脚本即可在Unity中创建一个简单的模拟镜面反射效果。 使用教程链接:https://blog.csdn.net/ChinarCSDN/article/details/80862999

    Away3D学习02场景SkyBox和反射

    在本篇中,我们将深入探讨 Away3D 学习的第二部分,主要关注场景中的SkyBox(天空盒)和反射效果。Away3D 是一款基于 ActionScript 的高性能三维引擎,常用于开发 Flash 平台上的交互式3D应用。通过 SkyBox 和反射,...

    Flex特效示例

    Flex特效示例主要展示了在ActionScript 3.0框架下使用Adobe Flex进行视觉效果和动画设计的各种技术。Flex是一款强大的开发工具,用于构建富互联网应用程序(RIA),它提供了丰富的组件库和强大的图形处理能力,使得...

    Flex 3D圆形隧道效果

    通过调整Light3D对象的位置和强度,以及Material对象的属性,可以改变3D物体表面的反射、阴影和颜色,从而提升立体感。 6. **事件处理**:为了让用户能够与3D隧道互动,需要监听鼠标和键盘事件,根据用户的输入调整...

Global site tag (gtag.js) - Google Analytics