echo的做法是用純粹的java代碼產生瀏覽器HTML介面,並且響應客戶事件。
由於html天生的一些特性,介面很難做的象flash一樣美觀。
那麼echo的server side event機制+flash是不是一個很好的組合呢?
先來看看Flash:
開發語言actionscript2,支援物件導向。
組件:
flash mxOOB 元件。
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機制。
http://www.nowrap.de/flasm
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也是一知半解,歡迎有興趣的朋友參與~~