• 【设为首页】
  • 【收藏闪客居】
当前位置:主页>FLASH AS 编程>FMS>文章内容
  • Java版AMF3项目OpenAMF3建立
  • 来源:37studio.net 作者:三七 2008-09-17 【


自从有了AMF3以来,一直在寻求支持AMF3解码的Remote gateway,找了许久, 之前的OpenAMF只支持AMF0,没有考虑LCDS或是GDS或是Blazeds,因为它们都用到了Flex的消息框架,而加入Flex的消息框架则 会让swf文件本身大小增长近200KB, 当然,你可以说通过json或是xml也可以完成,但是,我不希望有中间层解码的繁琐.于是干脆自己写了一个AMF3的Remote gateway.实现的原理很简单,就是通过URLLoader将AMF3的数据包post到服务器执行服务器端的方法之后又用AMF3数据包返回来.我 将这个项目命名为: openamf3, 并计划在近期内开源.

客户端example如下:

ActionScript代码
  1. package {  
  2.     import flash.display.Sprite;  
  3.     import flash.net.registerClassAlias;  
  4.       
  5.     import org.openamf3.AMF3Remote;  
  6.     import org.openamf3.AMF3RemoteBean;  
  7.     import org.openamf3.FaultEvent;  
  8.     import org.openamf3.ResultEvent;  
  9.   
  10.     public class OpenAMF3Test extends Sprite  
  11.     {         
  12.         public function OpenAMF3Test()  
  13.         {             
  14.             var remote:AMF3Remote=new AMF3Remote("http://localhost:8080/OpenAMF3/servlet/gateway");  
  15.             remote.addEventListener(FaultEvent.FAILED,onFailed);  
  16.             remote.addEventListener(ResultEvent.RESULT,onResult);             
  17.             remote.call("org.openamf3.sample.HelloWorld","hello",1);  
  18.         }  
  19.           
  20.         private function onFailed(event:FaultEvent):void{  
  21.             trace("failed:",event.message);  
  22.         }  
  23.           
  24.         private function onResult(event:ResultEvent):void{  
  25.             trace("result:",event.data);  
  26.         }  
  27.     }  
  28. }  


服务器端的test如下:

Java代码
  1. package org.openamf3.sample;  
  2.   
  3. import java.util.Map;  
  4.   
  5. public class HelloWorld {  
  6.     public int hello(Integer value) {  
  7.         return 1 + value;  
  8.     }  
  9.   
  10.     public String hello(String value) {  
  11.         return "Hello Wills.Deng" + value;  
  12.     }  
  13.   
  14.     public Long hello(Long value) {  
  15.         return 2 + value;  
  16.     }  
  17.   
  18.     public Map hello(Map value) {  
  19.         value.put("hello", value);  
  20.         return value;  
  21.     }  
  22.   
  23.     public String hello(String[] value) {  
  24.         return "Hello Wills.Deng" + value;  
  25.     }  
  26. }  

执行返回的结果是:

控制台输出:
  1. [SWF] D:\workSpace\playHut\JavaAMF3\bin-debug\OpenAMF3Test.swf - 4,341 bytes after decompression  
  2. result: 2 



上一篇:FMES将使用RhozetCarbonServer   下一篇:Flash Media Server心得之一
  • 用户名:新注册) 密码: 匿名评论
  • 评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)

Copyright © 2006-2008 flashas.net All Rights Reserved.
网站内容咨询: admin#flashas.net (#为@) 联系QQ:40777822 浙ICP备06033001号
(本网站最佳浏览解析度为1024*768, 建议使用IE 6.0或以上版本浏览器。)