利用反射调用另一个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对象
发表评论
-
VC++深入详解??chapter17??笔记
2012-01-20 08:36 523VC++深入详解??chapter17?? ... -
GDB调试.pdf
2012-01-20 08:36 1056GDB调试.pdf 2011年05月26日 1.1 Gd ... -
LINUX字符设备驱动程序原理总结
2012-01-20 08:36 915LINUX字符设备驱动程序原理总结 2010年07月08日 ... -
Linux设备驱动程序第三版学习(6)- 高级字符驱动程序操作(续1) - 进程休眠
2012-01-20 08:36 712Linux设备驱动程序第三版学习(6)- 高级字符驱动程序操作 ... -
关于Linux下的视频编程
2012-01-20 08:36 561关于Linux下的视频编程 2011年06月20日 前言 ... -
AIR笔记 使用HTML
2012-01-19 13:42 848AIR笔记 使用HTML 2011年05月17日 a ... -
As3 使用外部swf文件的元件库中的导出类
2012-01-19 13:42 1002As3 使用外部swf文件的元件库中的导出类 2011年08 ... -
优化Flash平台的性能――优化网络交互外部内容
2012-01-19 13:42 809优化Flash平台的性能――优化网络交互外部内容 2010年 ... -
ApplicationDomain
2012-01-19 13:42 515ApplicationDomain 2011年11月01日 ... -
Android智能手机刷机教程
2012-01-17 03:32 1039Android智能手机刷机教程 2011年03月07日 ... -
Linux 一些常用的基本命令
2012-01-17 03:31 522Linux 一些常用的基本命 ... -
地理与我们的衣食住行之出行
2012-01-16 02:07 816地理与我们的衣食住行 ... -
试谈中国地理环境与中国文化的联系
2012-01-16 02:07 704试谈中国地理环境与中国文化的联系 2011年12月20日 ... -
宋代衣食住行等习俗的变化
2012-01-16 02:07 953宋代衣食住行等习俗的变化 2010年03月24日 宋代对 ... -
上海世博呈科技盛宴 互动体验未来的衣食住行
2012-01-16 02:07 520上海世博呈科技盛宴 互 ... -
高中生辉煌60年作文:衣食住行话巨变
2012-01-16 02:07 555高中生辉煌60年作文:衣 ...
相关推荐
C#中在一个窗体里调用另一个窗体的方法;C#不同窗体方法调用
主要介绍了详解Golang利用反射reflect动态调用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
利用java的反射原理来调用 Android隐藏api 应用开发必备哦 详细描述: http://blog.csdn.net/y_haiyang/article/details/9924925 ====================关注小鱼=================== 新浪微博:...
C# 通过反射调用com组件,封装了几个简单的方法方便使用反射调用com。 var obj=new ComObj("excel.application"); obj["Visible"]=true; obj. InvokeMethod("Application.Workbooks.Open", fileName);
ITypeLib* pTypeLib = NULL; ITypeInfo* pTypeInfo = NULL; FUNCDESC* pFuncDesc; MEMBERID idMember; HRESULT hr; INVOKEKIND invKind;...BSTR bstrDllName, bstrFuncName;...if( SUCCEEDED(hr) )
C++中,一个类需要调用另外一个类的数据成员时,经常不知道怎么做,这里整理了两种方法,来实现在一个类中调用另外一个类的数据成员。
AS加载一外部SWF调用该swf内部方法,一个Flash中通过AS3代码的Loader对象加载另一个SWF文件,并访问其中的文档类中的方法。 简单示例: 主文件:Main.fla, Main.as 被调用的文件:called.swf, Called.as
利用反射 调用以生成的DLL里的方法. 一个简单的实例清楚现实反射DLL
Android PackageManager 有很多方法是没有暴漏出来的,我们如果想调用的话需要用Java反射。android_dependency.jar 提供了反射调用相关的class定义,直接放到你的工程libs目录下面,然后就可以进行反射调用...
一个flash调用三个外部flash的图片轮换程序,附源码
一个快速字符串处理单元,一些函数用汇编写的,处理速度比DELPHI本身的字符串处理快很多,不过不支持WideString类型。 Idpacker.pas 压缩文件类型检测单元。 ZLibEx.pas 纯Pascal代码的快速压缩解压单元,压缩率...
该资源简述了对所有方法进行调用,属性进行赋值.一般情况下private protected 访问修饰符号的方法和属性不能被调用,受到限制.该资源得到了很好的解决!
本例演示了如何使用反射,调用类的静态方法,封装了工具类ClsTool,统一实现静态方法的调用。使用反射,在特定场景下,能够很好的简化代码。例如mybatis
一个隐藏FLASH文件地址且不需控件激活的SWF代码 方式: JS调用 支持: 几乎所有语言编程的任何动态、静态网页、网站、论坛 效果: 1、SWF文件不需要先行点击激活控件,直接点击直接有效。 2、隐藏SWF真实URL地址。 ...
学习要点: * 1.如何利用Lambda 跟泛型方法配合的区别 .(非委托) * 2.利用Lambda 反射调用属性值 .
例如有这样一个html,里面有一个按钮,当按下时调用b.js文件中的方法b()。而b()中又要调用a.js文件中的方法a()。若要实现这个功能,必须注意,将要引入的Js文件代码放在</body>下面。 首先,我们在html中...
利用反射动态调用DLL方法,可录入参数。
该篇文章主要介绍当我们碰到参数或者返回值是一个对象时,如何通过frida反射调用该对象的方法(methods)与获取该对象的字段(fields)。感兴趣的朋友可以下载下来看看,了解了解
python 利用 jpype 调用java代码
该资源包含了一个利用反射执行的一些操作,包含了动态执行构造方法,动态运行私有方法,为属性初始化等等,简单易懂。