语录提交--登陆--注册--论坛交流--站长博客

AS3 连接FMS2

[作者:来自网络][日期:2007-12-28][导航:Flash教程 >> Fms2 >> AS3 连接FMS2]
  在使用ActionScript3的NetConnection类连接Flash Media Server或者Remoting的时候,需要注意以下几点:

1.注意设定AMF版本
ActionScript3默认使用的是AMF3,而ActionScript2和ActionScript1使用的是AMF0,如果不指定NetConnection的AMF版本,就会出现连接失败。指定的方法如下:

NetConnection.defaultObjectEncoding = flash.net.ObjectEncoding.AMF0;

上面的代码会修改所有的NetConnection实例的默认AMF版本。
如果只需要修改一个NetConnection实例的AMF版本,代码如下:

public var NC:flash.net.NetConnection;
NC = new NetConnection();
NC.objectEncoding = flash.net.ObjectEncoding.AMF0;

2.获取onStatus状态值
ActionScript2中的方法已经不能使用,要获取NetConnection实例的连接状态,必须使用NetStatusEvent事件类,代码如下:

  1. import flash.events.NetStatusEvent;
  2. import flash.net.NetConnection;
  3.  
  4. private function statusHandler(evt:NetStatusEvent):void{
  5.     trace(evt.info.code);
  6.     switch(evt.info.code){
  7.         case "NetConnection.Connect.Rejected":
  8.             var appmsg:String = (evt.info.application == undefined) ? "" : evt.info.application;
  9.             mx.controls.Alert(appmsg);
  10.             break;
  11.         case "NetConnection.Connect.Failed":
  12.             mx.controls.Alert("连接失败");
  13.             break;
  14.         case "NetConnection.Connect.Closed":
  15.             //
  16.             break;
  17.         case "NetConnection.Connect.Success":
  18.             trace("连接成功!");
  19.             break;
  20.     }
  21. }
  22.  
  23. private function login():void{
  24.     adminNC = new NetConnection();
  25.     adminNC.addEventListener(NetStatusEvent.NET_STATUS, statusHandler);
  26.     adminNC.connect("http://localhost/test/test1", userName, userPWD);
  27. }

3.在NetConnection实例中定义被呼叫方法
ActionScript2中,我们可以使用myNC.functionName=function(){}来定义NetConnection对象中被呼叫的方法。但是,在ActionScript3中,NetConnection并非动态类,不能用这样的方法添加被呼叫方法,而必须使用client属性实现(接上例):

  1. import flash.events.NetStatusEvent;
  2. import flash.net.NetConnection;
  3.  
  4. public function loginSuccess($adminLevel:int):void{
  5.     trace("loginSuccess被调用,$adminLevel:" + $adminLevel);
  6.     this.dispatchEvent(new Event("loginSuccess"));
  7. }
  8.  
  9. private function login():void{
  10.     adminNC = new NetConnection();
  11.     adminNC.client = this;
  12.     adminNC.addEventListener(NetStatusEvent.NET_STATUS, statusHandler);
  13.     adminNC.connect("http://localhost/test/test1", userName, userPWD);
  14. }

当登录成功后,FMS端会调用客户端NC的loginSuccess方法,并传回管理员的级别。在这里,为client属性赋值,告知被调用的loginSuccess方法在哪个对象中。被调用的方法必须被声明为public。

还有一些和SharedObject和NetStream类相关的注意事项,可以看这里

[文章热度:]


上一页:Flash Media Server (FMS)中文帮助文档

下一页:FMS播放文件结构的设置

最新话题

网站导航

搜索

网站公告


Copyright 2007 51as.com. Some Rights Reserved.
鄂ICP备07003189号

Powered by: KingCMS 5.0.1.0217