在RIAMeeting之前的一篇文章中介绍过Merapi,如果你还不太了解,请点击这里。
简单说来,Merapi就是基于Socket沟通Flex/Flash/AIR项目与Java的桥梁,这样我们就可以通过Java扩展原先Flash平台所不具备的功能,比如与系统深层次的整合,调取电脑外设等等,在上面那篇文章中对Merapi的工作机制有详细的介绍,这里不再阐述。
现在我们通过一个例子,来直观的体验一下Merapi所带来的便捷(目前仍是Beta版,还是有这样那样的问题,对Byte的支持似乎也不够好,字 符串完全没有问题)。这个例子里我们直接使用Flex建立的Web项目来进行(当然你也可以使用AIR),通过一个Java应用截取系统的屏幕,并返回给 Flex端显示。
步骤一:配置
首先是工具,因为要写两个项目(Flex项目和Java项目),准备好你喜欢的IDE吧,我这里是Flash Builder和MyEclipse。
然后要下载Merapi的类库,下载地址在:
http://code.google.com/p/merapi/source/browse/#svn/binaries/merapi-core-0.1.8-beta
注意还要下载Java项目依赖的Jar包,地址在:
http://code.google.com/p/merapi/source/browse/#svn/trunk/java/merapi-core/libs%3Fstate%3Dclosed
步骤二:建立Java项目
代码过程参见:
http://www.riameeting.com/node/673
至此Flex项目也编写完毕。注意两边的数据传输是图片数据的字节数组(ByteArray),在笔者的项目中有个Bug,即再次生成图片的结果没有返回,而字符串则没有问题,猜测是Merapi的Bug,有待解决。
步骤四:运行
首先将我们刚才建立的Java项目Run起来,然后Run Flex项目,在浏览器显示的Flash界面上点击鼠标,不出意外的话,可以看到自己屏幕的截图。
图1:运行效果,点击看大图
谨以此例抛砖引玉,欢迎大家讨论!