利用反射调用另一个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对象
发表评论
-
关于动态贴图问题不能动态通过texture改变只能重新new 新material
2012-01-20 01:48 1618关于动态贴图问题不能动态通过texture改变只能重新new ... -
Flex学习收藏资料
2012-01-20 01:48 614Flex学习收藏资料 2010年09月16日 1、《Fl ... -
papervision3d学习笔记:图片墙(1)
2012-01-20 01:48 737papervision3d学习笔记:图片墙(1) 2010年 ... -
[AS3] Alternavta3d7.5教程(一)
2012-01-20 01:48 778[AS3] Alternavta3d7.5教程(一 ... -
广州工作2个月!差人的公司可以call我
2012-01-20 01:48 722广州工作2个月!差人的公司可以call我 2011年06月3 ... -
民国小学生的一篇作文
2012-01-19 09:35 684民国小学生的一篇作文 ... -
小学生作文能力的培养
2012-01-19 09:35 495小学生作文能力的培养 ... -
教小学生写作文1
2012-01-19 09:35 967教小学生写作文1 2011年09月09日 一、小学作文教 ... -
小学生期末评语
2012-01-19 09:35 522小学生期末评语 2010年0 ... -
小学生操行评语
2012-01-19 09:35 650小学生操行评语 2011年0 ... -
神机也有软肋 小米手机
2012-01-17 02:10 670神机也有软肋 小米手机 2011年09月11日 小米手机 ... -
Android中的3D相册
2012-01-17 02:10 1065Android中的3D相册 2011年11月28日 ... -
3D显卡
2012-01-17 02:10 5413D显卡 2011年08月30日 3D 显卡技术术语目前 ... -
揭开Wayland的面纱(一):X Window的前生今世
2012-01-17 02:10 753揭开Wayland的面纱(一):X W ... -
VLC各模块名称及功能介绍
2012-01-17 02:10 887VLC各模块名称及功能介绍 2010年10月28日 [3 ... -
在flex页面中安装AIR程序
2012-01-15 21:42 820在flex页面中安装AIR程序 2010年07月17日 ... -
SWF与SWF交互
2012-01-15 21:42 581SWF与SWF交互 2010年07月23日 在AS2里S ... -
AIR笔记 使用HTML
2012-01-15 21:42 670AIR笔记 使用HTML 2011年05月17日 a ... -
Flex Module 终极减肥篇之去掉最后哪一点赘肉
2012-01-15 21:42 596Flex Module 终极减肥篇之 ...
相关推荐
本文主要讲解了在遇到需要操作Java对象的参数或返回值时,如何利用Frida这一动态代码插桩工具来进行反射调用,包括调用对象的方法和获取对象的字段。Frida是一个强大的动态代码插桩工具,它可以注入到几乎所有的进程...
总结起来,Go-grpcall是一个提升GRPC客户端开发效率的工具,它利用反射技术简化了服务调用,并且能够方便地用于构建如grpc-gateway这样的代理中间件。对于Go语言开发者而言,掌握这个库的使用可以提高项目开发的灵活...
利用java的反射原理来调用 Android隐藏api 应用开发必备哦 详细描述: http://blog.csdn.net/y_haiyang/article/details/9924925 ====================关注小鱼=================== 新浪微博:...
在实际应用中,反射调用DLL里的方法可能涉及到更复杂的逻辑,比如处理泛型方法、静态方法、私有方法等。同时,需要注意性能问题,因为反射操作相比直接调用通常会慢一些,所以不应在性能敏感的代码中过度使用。 总...
C#利用反射动态编译代码,创建类的实例,并调用其成员 在软件开发中,C#提供了强大的反射机制,允许开发者在运行时动态生成代码,创建类的实例,并调用其成员。本文将通过一个经典实例,介绍C#中的反射机制,并说明...
在标题和描述中提到的"SWF制作支持库1.1(静态版)"是易语言的一个扩展库,主要用于创建和处理SWF(ShockWave Flash)文件,这是一种广泛用于网络上的动画和交互式内容格式。 SWF文件制作支持库是易语言提供的一种...
- 在MATLAB中,你需要创建一个MEX文件,它是MATLAB调用C++代码的桥梁。使用`mex`命令来生成MEX文件,例如:`mex myFunction.cpp`。这会生成一个名为`myFunction.mexw64`(或类似)的文件,MATLAB可以识别并调用它。...
在IT领域,跨语言通信是常见的需求,尤其是在.NET框架下的C#编程中,有时需要调用C++编写的原生代码来利用其高效性或利用已有的库。本实例将详细讲解如何使用C#调用C++代码,通过DLL动态链接库实现功能。 首先,...
详细演示了如何通过JNA实现以下形式的动态链接库接口: 1:基本数据类型 ...7:输入一个数组 8:输出一个数组并释放空间 本资源包括三个工程: C++动态链接库; VC调用本地动态链接库; JNA调用本地动态链接库;
本文将详细介绍如何利用Java反射来创建get和set方法,并演示如何通过反射机制调用这些方法。 #### Java反射概述 Java反射机制提供了一种方式,可以在运行时获取类的信息,并创建和操作对象。这为开发者提供了极大的...
flash cs6 as3.0编写的调用外部swf文件,并实现被导入swf文件的内外控制,被导入文件about.swf自带两个控制按钮,about.swf导入index.swf后,通过index.swf中的两个按钮控制about.swf的播放与暂停,并实现了代码的...
在Android开发中,JNI(Java Native Interface)是一个关键的组件,它允许Java代码与其他语言编写的代码进行交互,包括C、C++等。这个例子"android studio中JNI调用第三方库例子"是基于谷歌官方提供的"hello-libs...
在这种情况下,"springboot+jna/jni调用动态so/dll库"是一个重要的主题,它涉及到Spring Boot应用如何利用Java Native Interface (JNI) 和 Java Native Access (JNA) 这两种技术来调用操作系统级别的动态链接库(.so...
简介:本人学习Qt一个星期了,利用Qt做的仿360界面,然后打包成动态库。 用C++的MFC对话框按钮调用Qt界面动态库,经测试成功。
JNI允许Java代码和其他语言写的代码进行交互,包括调用C/C++编译的动态链接库(DLL)文件。下面将详细介绍如何使用JNI来调用DLL,并解释相关知识点。 1. **JNI简介** JNI是Java平台的标准部分,提供了一组接口,...
通过这种方式,我们可以利用反射和接口实现动态加载和调用DLL中的功能,使得程序具有更好的可扩展性,可以灵活地集成新的功能模块而无需修改原始代码。 在实际应用中,这种技术常用于插件系统、框架设计、跨程序集...
本文将详细讲解如何通过JS调用由C#编写的DLL(动态链接库),并涵盖源代码创建、DLL生成、注册以及JS调用DLL的两种方法。 首先,我们创建C#类库项目。在Visual Studio中,选择“新建项目”-> “类库(C#)”,项目...
2、可以把多个.c 文件合成一个lib 文件,这样在工程就不必要把每一个.c 文件都添加一遍。 3、相比添加.c 文件,它具有不使用已经申明的extern 函数也不会出现Keil 经典的UNCALLED FUNC warning。更重要的是,不使用...
1. **构建JNI库**:根据GMSSL的C/C++源码和API,创建一个动态链接库,包含对SM2、SM3和SM4的调用接口。 2. **编写Java头文件**:使用`javah`工具生成JNI接口的C/C++头文件,该文件定义了Java方法的C/C++实现。 3. **...
在Android开发中,有时我们需要利用C或C++编写性能高效的代码,这时就需要引入第三方的.so库。这篇内容将深入探讨如何在Android应用中调用已编译的第三方.so库,以实现Java与C/C++之间的交互。 首先,了解JNI(Java...