NetConnect对象--FlashCom Develop阅读笔记 (十一)

2006-03-09 00:41:55

NetConnect对象--FlashCom Develop阅读笔记 11 站长注:好久没有写这个了,从这篇开始我不会单纯的去翻译英文手册(其实本来就不是的,呵呵~再说都有现成的中文参考手册了),而会综合我个人的心得或者其它方面的参考资料。因为这些官方手册的中文版迟早都会出来,大家会看的更清楚。但是有些内容却是手册中没有或者没有讲明白的,我想着重会写这些,这也是我会持续写下去的原因。因为时间原因,这些笔记都会及时补充,所以大家可以多多查看是否有更新的内容。也希望大家多多支持! 对象简介 如果要把本地端的视频或者声音传递给其它的客户端,Flash影片就必须要联机到FlashCom 服务器。联机的方法就是通过NetConnect对象的connect()方法,连接到指定路径的FlashCom应用程序。 FlashCom使用RTMP协议来共享和传输你的数据、声音和视频。 对象属性: isConnected 是否连接 uri 连接的URL地址,可以使用下面的方式 • rtmp://www.myCompany.com/myMainDirectory/groupChatApp/HelpDesk • rtmpt:/sharedWhiteboardApp/June2002 • rtmp::1234/chatApp/room_name 例如你要联机到vchat的聊天程序,并且进入room1房间,可以按照下面的方式写: 1 : //建立联机对象 2 : client_nc = new NetConnect (); 3 : //联机到应用程序实体 4 : client_nc.connect( 'rtmp://mywebsite.com/vchat/room1' ); 可以不写房间名,则进入默认的房间 详细的连接语法可以参考我之前的笔记:连接示例 。 NetConnect对象并不支持http协议,所以类似下面的连接方式是错误的: 1: myConn.connect('http://www.mydomain.com/myfile.php?id= 0001') ; 并且FlashCom服务器端不支持任何直接远程调用的方法如 getURL 或 LoadVars,也就是说,服务器端不能够和后台程序进行数据交换,必须使用call方法调用客户端方法或者使用FlashRemote(或者使用开源的PHPObject)。 远程呼叫 如果要呼叫远程服务器端的方法或指令,可以使用Call方法,该方法的格式如下: 1 : call (方法名称,接收传回值的对象(没有就用null),[参数1,参数2,...]) 2 : //参数列表为需要传递到服务器端方法的参数,如果参数多余会被服务器端忽略 和很多对象一样,NetConnect对象有个onStatus事件,用于接受返回信息 下面是比较常见的写法: 1 : client_nc.onStatus = function (info){ 2 : //处理状态信息的程序代码 3 : }; 状态信息的类型记录在信息对象的level属性中,其可能值为 status 状态 warning 警告 error 错误 信息的内容则记录在对象的code属性中。在NetConnect对象中,可以参考下面的范例程序来输出返回信息: 01 : client_nc.onStatus = function (info){ 02 : trace ( '信息类型:' + info.level + newline + '信息内容:' + info.code ); 03 : switch (info.code){ 04 : case 'NetConnection.Connect.Success': 05 : trace ( '联机成功!' ); 06 : break; 07 : case 'NetConnection.Connect.Failed': 08 : trace ( '联机失败!' ); 09 : break; 10 : case 'NetConnection.Connect.Closed': 11 : trace ( '联机中断!' ); 12 : break; 13 : } 14 : }; 保存日志 需要的话可以把连接日志记录下来: 1 : client_nc.onStatus = function(info) 2 : { 3 : _root.log += 'Recording stream status.\n' ; 4 : _root.log += 'Event: ' + info.code + '\n' ; 5 : _root.log += 'Type:' + info.level + '\n' ; 6 : _root.log += 'Message:' + info.description + '\n' ; 7 : } 关闭连接 要关闭连接请使用 close()方法,如下面的代码停止数据流对象后关闭连接 1 : function disconnect() { 2 : // Stops publishing the stream. 3 : srcStream.close(); 4 : // Deletes the source stream connection. 5 : connection.close(); 6 : }