`
cev773wq
  • 浏览: 14948 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

利用反射调用另一个swf里的代码库

 
阅读更多

利用反射调用另一个swf里的代码库
2011年02月19日
  [转自]http://wgcode.javaeye.com/blog/851691
  或许我还是对flash了解不够深,虽然用它好多年了....还没有发现有更好的办法,例如flashDll,我就不知道怎么用才更好,可以达到他说的那样的可以使文件小很多。
  他的做法是把很多在多个flash中使用的代码打包进一个swf里面去,然后给不同的swf调用,从而达到减小体积的目的。
  但是我觉得即使是加载进行,但是在代码里进行了声明,最后还是会把代码编译进来,结果是体积还是没有减小.....(或许我这样说还是会有很多人不明白的.....具体看代码和效果吧)
  Java代码
  package   {      import flash.display.Sprite;      import flash.display.Loader;    import flash.events.Event;      import flash.system.LoaderContext;      import flash.net.URLRequest;      import flash.system.ApplicationDomain;      import flash.utils.getDefinitionByName;            [SWF (width=800, height=600)]            public class Main extends Sprite       {          private var loader:Loader;          public function Main()           {              loader = new Loader();              loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoader);              loader.load(new URLRequest("dll/AsWingDLL_1_3_0.swf"),                       new LoaderContext(false, ApplicationDomain.currentDomain));          }                    private function onLoader(event:Event):void          {              var mangerClass:Class = getDefinitionByName("org.aswing.AsWingManager") as Class;              mangerClass["initAsStandard"](this);                            var frameClass:Class = getDefinitionByName("org.aswing.JFrame") as Class;              var frame:Object = new frameClass(this,"测试反射");              var paneClass:Class = getDefinitionByName("org.aswing.JScrollPane") as Class;              var pane:Object = new paneClass();              var aertClass:Class = getDefinitionByName("org.aswing.JTextArea") as Class;              var art:Object = new aertClass();                            //增加多行文本              pane["append"](art);              frame["setContentPane"](pane);              frame["setSizeWH"](400, 300);              frame["show"]();          }      }  }  
  很明显,可以看到体积非常小,
  当然,有个AsWingDLL_1_3_0.swf文件是200k的,当然,你也可以加载网络上的代码库
  如果不利用反射,直接在flash里进行声明,那么代码会变得大很多,有心人可以重写onLoader方法里的代码。不利用反射,直接new对象
分享到:
评论

相关推荐

    frida反射调用对象中的方法与字段.pdf

    本文主要讲解了在遇到需要操作Java对象的参数或返回值时,如何利用Frida这一动态代码插桩工具来进行反射调用,包括调用对象的方法和获取对象的字段。Frida是一个强大的动态代码插桩工具,它可以注入到几乎所有的进程...

    Go-grpcall是一个客户端库利用反射模式轻松请求GRPC服务器

    总结起来,Go-grpcall是一个提升GRPC客户端开发效率的工具,它利用反射技术简化了服务调用,并且能够方便地用于构建如grpc-gateway这样的代理中间件。对于Go语言开发者而言,掌握这个库的使用可以提高项目开发的灵活...

    利用java反射调用Android隐藏Api

    利用java的反射原理来调用 Android隐藏api 应用开发必备哦 详细描述: http://blog.csdn.net/y_haiyang/article/details/9924925 ====================关注小鱼=================== 新浪微博:...

    反射实例反射调用DLL里的方法

    在实际应用中,反射调用DLL里的方法可能涉及到更复杂的逻辑,比如处理泛型方法、静态方法、私有方法等。同时,需要注意性能问题,因为反射操作相比直接调用通常会慢一些,所以不应在性能敏感的代码中过度使用。 总...

    C#利用反射动态编译代码,创建类的实例,并调用其成员[文].pdf

    C#利用反射动态编译代码,创建类的实例,并调用其成员 在软件开发中,C#提供了强大的反射机制,允许开发者在运行时动态生成代码,创建类的实例,并调用其成员。本文将通过一个经典实例,介绍C#中的反射机制,并说明...

    易语言学习-SWF制作支持库1.1(静态版).zip

    在标题和描述中提到的"SWF制作支持库1.1(静态版)"是易语言的一个扩展库,主要用于创建和处理SWF(ShockWave Flash)文件,这是一种广泛用于网络上的动画和交互式内容格式。 SWF文件制作支持库是易语言提供的一种...

    matlab调用C++ 动态库实例

    - 在MATLAB中,你需要创建一个MEX文件,它是MATLAB调用C++代码的桥梁。使用`mex`命令来生成MEX文件,例如:`mex myFunction.cpp`。这会生成一个名为`myFunction.mexw64`(或类似)的文件,MATLAB可以识别并调用它。...

    C#调用C++代码完整实例

    在IT领域,跨语言通信是常见的需求,尤其是在.NET框架下的C#编程中,有时需要调用C++编写的原生代码来利用其高效性或利用已有的库。本实例将详细讲解如何使用C#调用C++代码,通过DLL动态链接库实现功能。 首先,...

    如何使用JNA调用本地C/C++动态链接库详细示例代码

    详细演示了如何通过JNA实现以下形式的动态链接库接口: 1:基本数据类型 ...7:输入一个数组 8:输出一个数组并释放空间 本资源包括三个工程: C++动态链接库; VC调用本地动态链接库; JNA调用本地动态链接库;

    Java 反射创建get set方法及反射方法的调用

    本文将详细介绍如何利用Java反射来创建get和set方法,并演示如何通过反射机制调用这些方法。 #### Java反射概述 Java反射机制提供了一种方式,可以在运行时获取类的信息,并创建和操作对象。这为开发者提供了极大的...

    flash cs6 as3.0编写的调用外部swf文件,并实现被导入swf文件的内外控制

    flash cs6 as3.0编写的调用外部swf文件,并实现被导入swf文件的内外控制,被导入文件about.swf自带两个控制按钮,about.swf导入index.swf后,通过index.swf中的两个按钮控制about.swf的播放与暂停,并实现了代码的...

    andoid studio中JNI调用第三方库例子

    在Android开发中,JNI(Java Native Interface)是一个关键的组件,它允许Java代码与其他语言编写的代码进行交互,包括C、C++等。这个例子"android studio中JNI调用第三方库例子"是基于谷歌官方提供的"hello-libs...

    springboot+jna/jni调用动态so/dll库

    在这种情况下,"springboot+jna/jni调用动态so/dll库"是一个重要的主题,它涉及到Spring Boot应用如何利用Java Native Interface (JNI) 和 Java Native Access (JNA) 这两种技术来调用操作系统级别的动态链接库(.so...

    Qt界面动态库被MFC对话框调用

    简介:本人学习Qt一个星期了,利用Qt做的仿360界面,然后打包成动态库。 用C++的MFC对话框按钮调用Qt界面动态库,经测试成功。

    JAVA如何调用dll:用JNI调用C或C++动态联接库原来如此简单

    JNI允许Java代码和其他语言写的代码进行交互,包括调用C/C++编译的动态链接库(DLL)文件。下面将详细介绍如何使用JNI来调用DLL,并解释相关知识点。 1. **JNI简介** JNI是Java平台的标准部分,提供了一组接口,...

    C# 反射实例代码 接口方式动态加载dll方式

    通过这种方式,我们可以利用反射和接口实现动态加载和调用DLL中的功能,使得程序具有更好的可扩展性,可以灵活地集成新的功能模块而无需修改原始代码。 在实际应用中,这种技术常用于插件系统、框架设计、跨程序集...

    JS调用c#编写的DLL 源代码

    本文将详细讲解如何通过JS调用由C#编写的DLL(动态链接库),并涵盖源代码创建、DLL生成、注册以及JS调用DLL的两种方法。 首先,我们创建C#类库项目。在Visual Studio中,选择“新建项目”-> “类库(C#)”,项目...

    在keil中生成个人库文件及调用方法

    2、可以把多个.c 文件合成一个lib 文件,这样在工程就不必要把每一个.c 文件都添加一遍。 3、相比添加.c 文件,它具有不使用已经申明的extern 函数也不会出现Keil 经典的UNCALLED FUNC warning。更重要的是,不使用...

    GMSSL的java调用(JNI库和调用实例).zip

    1. **构建JNI库**:根据GMSSL的C/C++源码和API,创建一个动态链接库,包含对SM2、SM3和SM4的调用接口。 2. **编写Java头文件**:使用`javah`工具生成JNI接口的C/C++头文件,该文件定义了Java方法的C/C++实现。 3. **...

    android调用第三方so库

    在Android开发中,有时我们需要利用C或C++编写性能高效的代码,这时就需要引入第三方的.so库。这篇内容将深入探讨如何在Android应用中调用已编译的第三方.so库,以实现Java与C/C++之间的交互。 首先,了解JNI(Java...

Global site tag (gtag.js) - Google Analytics