浏览 5525 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-11-20
最后修改:2009-11-21
大家都知道用java写CS程序非常麻烦,开发效率远不如winform,但是 //添加flash容器到shell窗体 final FlashContainer container=new FlashContainer(shell); //flash容器加载完毕会自动调用ILoadCompleteListener接口的run方法 container.completeListener=new ILoadCompleteListener(){ public void run() { //传入一flash容器创建remoteObject代理对象 RemoteObject remoteObject=new RemoteObject(container); //调用flex中demo.Test类的默认构造函数创建一对象, //并将该对象与本地remoteObject对象关联 remoteObject.createRemoteObject("demo.Test", null); //调用关联类demo.Test的hello方法,并传入参数 Object obj=remoteObject.call("hello", new Object[]{"Java"}); //将flex返回的字符串转换为对应String类型,并打印出来 System.out.println((String)obj); } }; //加载具体的swf文件 container.loadMovie(0, "E:/SmartInvokeTest.swf"); //创建一代理对象 var remoteObject:RemoteObject=new RemoteObject(); //调用java中demo.JavaServer类的默认构造函数创建一对象, //并将该对象与本地remoteObject对象关联 remoteObject.create("demo.JavaServer",null); //调用demo.JavaServer类的hello方法,并传入字符串 flex var ret:Object=remoteObject.call("hello",["flex"]); //将java返回的字符串转换为对应String类型 Alert.show("java返回"+ret as String); //回收关联类的内存 remoteObject.dispose();
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-11-21
不错,国人当自强啊
|
|
返回顶楼 | |
发表时间:2009-11-22
你这样是不是用户又得装jvm又得装flash插件呢?
客户端完全是flex写,不是更好点?没必要再跟java扯在一起 |
|
返回顶楼 | |
发表时间:2009-11-22
直接用air不好吗?
|
|
返回顶楼 | |
发表时间:2009-11-22
由于工作的原因用air做过几个程序,有很多不好的地方:
1:flex的编译速度不是一般的慢 由于我们写的是图表分析程序,一个分析项有很多图表,所以将 一个分析项目做成一个flex模块,这样可以动态加载。但是随着 模块的增加,发现flex程序的编译速度出奇的慢,大半的时间都花 在了编译与打包上面。 有了smartinvoke就可以将业务逻辑部分代码都拿给java来做,flex 只负责展示。 2:air就目前还很不成熟,表现在: 类库不全面,与操作系统格格不入,很多C++,.net,java的类库都没法用 3:没有多线程的支持,在处理大数据的时候经常出现程序的假死 |
|
返回顶楼 | |
发表时间:2009-11-22
这些问题都是我在从事flex开发一年多时间里遇到的,为了解决这些问题,所以写了SmartInvoke
希望后续者少走些弯路 |
|
返回顶楼 | |
发表时间:2009-11-22
如果flex要访问本地资源需要air运行环境的,这个东东也是10多兆,比jre小不了多少
jre经过瘦身可以缩小到10MB左右 |
|
返回顶楼 | |