flash与后台数据交换方法整理2-Flash Remting篇

Submitted by kinglong on 2006-2-21 9:5:1

二、Flash Remoting
  Flash Remoting这种数据接口是四个之中效率最高的!
  其优点:
    1.支持数据类型比较多(Converting from application server data types to ActionScript);
    2.传递数据量比较大;
    3.运行效率是现有几个当中最高的;
    4.对各种后台的支持也比较好;
    5.其还有调试模块(NetConnection Debugger)
    NetConnection debugger
  其缺点:
    1.需要flash端装Flash Remoting MX Components(这个是免费提供的);
    2.需要后台服务端装相应版本的Flash Remoting模块才可以使用,MM提供的模块有j2ee和.net两个版本是要收费的,好在网上还有两个开源的(OpenAMF,AMFPHP);
    3.好像Remoting对虚拟主机的支持不太好(可以去google搜索一下,有没有解决方法).

================================================================
  Flash端代码说明:(我这里用as1.0版本为例,其他版本到MM站查找)
================================================================
  //加载Remoting Component代码,这个是必须的;
  #include "NetServices.as"
  //加载Remoting 调试模块代码,这个是可选择的,用NetConnection Debugger查看调试信息;
  #include "NetDebug.as"
  if (inited == null){  
    inited = true; 
    //设置默认网关;
    NetServices.setDefaultGatewayUrl("http://localhost:8500/flashservices/gateway"); 
    //建立网关连接;
    gateway_conn = NetServices.createGatewayConnection(); 
    //获取一个服务;
    myService = gateway_conn.getService("myservice", this);
  }
 
  //定义调用方法的函数;
  function getString(name){
    //调用Remoting的getString方法;
    myService.getString(name);
  } 
  //定义返回结果的函数;
  function getString_Result(result){
    //result就为返回的结果;
    trace(result);
  }
  //定义返回状态的函数,此为可选的;
  function getString_Status(error){ 
    trace("getString_Status");
    trace(error.code);
    trace(error.description); 
    trace(error.details);
  }
  
  //调用函数;
  getString("kinglong");


================================================================
  服务端方法定义(我这里以Coldfusion Component为例,其他版本请参考相应的资料)
================================================================
<!---文件名为myservice.cfc--->
<cfcomponent displayname="我的服务"> 
 <!---定义了getString方法,需将access设为remote,否则Flash remoting无法调用此方法--->
 <cffunction name="getString" access="remote" returntype="string"> 
  <cfargument name="name" type="string" required="true"> 
  <cfset myResult = arguments.name & ",欢迎你!"> 
  <cfreturn myResult> 
 </cffunction>
</cfcomponent>

另附上Flash Remoting的在线帮助文件(Flash Remoting LiveDocs),MM网站上的Remoting相关的资料.

    1.LoadVars(XML)
    2.Flash Remoting
    3.Webservice
    4.XMLSocket

Trackback:

TrackBack URL for this entry:
http://www.klstudio.com/cmd.asp?act=tb&id=50


Comments:

#24 On 2006-2-21 23:04:37 sleep2death (e) said,

哈哈,不错哦.remoting用的不多,但是复杂对象的传递还真的非常方便!

#28 On 2006-2-22 14:53:58 auzn (e) said,

谢谢,支持支持.以前还没用过remoting,看到用起来这么方便,晚上试试手

#29 On 2006-2-23 3:59:59 开始怀念 (e) said,

kinglong,你好啊.很感谢你做出的FLASH播放器和那个天气系统.很漂亮.希望你多多加油.

发现一个问题.想请教一下,我使用你的FLASH播放器,再添加了第9首歌以后.播放器可以正常播放第9首歌,但是歌名那里显示"undefined.9"...怎么会事啊?如果把第9首歌和第8首个的位置换一下,那么第9首歌可以正常显示和播放.但是一开始的第8首歌却不见了..也就是说只有8首歌了.

#30 On 2006-2-23 9:41:48 kinglong (e) said,

我帮你看了一下,是由于你的xml文件设置有问题.
在xml中最后一项少了一个"]"字符所造成的:
应该是"劳赛尔]]>"这样子的!

#31 On 2006-2-23 16:04:23 开始怀念 (e) said,

呵呵,谢谢kinglong了.问题已解决.再次感谢~~

#45 On 2006-3-6 13:11:35 爱情狐狸 (e) said,

如果用摄像头拍照的图片,如何保存到服务器哦。用FLASH REMOTING??????????

#48 On 2006-3-6 16:25:20 小强 (e) said,

这是个好东西 后面两种方法的总结呢?想知道

#49 On 2006-3-6 16:27:40 小强 (e) said,

希望能尽快看到 因为我急需要 谢谢了:)

#51 On 2006-3-7 11:00:14 kinglong (e) said,

to 爱情狐狸:
你看一下:http://www.klstudio.com/post/5.html

#55 On 2006-3-7 12:14:01 爱情狐狸 (e) said,

嗯。我这几天一直在尝试用asp来生成图片。有空多多指教哦。

#155 On 2006-4-30 20:48:42 pc (e) said,

学习了 很不错

#200 On 2006-5-20 7:09:46 dongdong (e) said,

good


Happiness, I have discovered, is nearly always a rebound from hard work.3gp converter, mp4 converter



Post a comment:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。