echo的做法是用纯粹的java代码生成浏览器HTML界面,并且响应客户事件。
由于html天生的一些特性,界面很难做的象flash一样美观。
那么echo的server side event机制+flash是不是一个很好的组合呢?
先来看看Flash:
开发语言actionscript2,支持面向对象。
组件:
flash mx自带组件。
enflash http://www.asual.com/enflash/
aswing http://www.aswing.org 国人iiley开发中
开发工具: eclipse+asdt+mtasc+flahout 比JDT仍然有巨大差距
flash本身效果比较好,但是稍微复杂一点的例子运行有些迟钝。flash的后续版本和新的组件应该会有更好表现。
as2语言本身类似javascript,属于弱类型语言,可以用类似java的强类型编程,个别地方还是不大爽。
目前的IDE根本别指望重构什么的高级应用,Flash MX自带的开发工具更是难用的一塌糊涂。
目前发现两个工具可以解析swf, 便于理解swf结构和mtasc机制。
Action Script Viewer
flash用于客户端表现应该没有什么问题。剩下的问题是跟echo通讯。
echo2发布版本有三个jar: app/webcontainer/webRender, 从字面上也能看出作者希望把表现和渲染独立开。而且从echo的论坛上也能看到作者是作了这些方面的而打算。但是目前还没有类似工具出现。
根据这两天的研究,远程控制Flash的变化可以有两种方式:
1. xml, 利用as2本身访问server端,根据返回的xml解析执行为客户端见面。
这种方式的好处是server端比较通用,甚至可以和flash无关。坏处是flash压力更大。现在还不清楚,如果服务器上增加新控件,flash要怎样应用(动态生成?)
2. swf. 远程加载swf.
这是agent mulder指点的,并且mm上也有人建议。服务器端生成控制客户端的as2脚本,编译成swf, 由flash加载并且执行。
初步试验结果可行,它们的_root是共通的,简单的创建控件,修改属性都可行。担心:实际运行是否有安全限制?
一个小问题是as2的编译过程。mtasc可以编译,但它是外部exe。另外编译出来的swf自动打包了相关as文件,其实主flash中已经存在,有些臃肿。作者承诺在下个版本中加强packagelevel的exclude, 应该可以减肥到几百字节内。
基于java的编译工具还没看到,应该不是问题。
也许还有其它更好的方案,欢迎高手指点!
现在开始要研究一下echo2, 初步看下来结构比echo1清晰很多。
本人时间精力有限,对flash也是一知半解,欢迎有兴趣的朋友参与~~