flash as3连接fms

在前面提到过使用as3连接remoting的的方法,在旧的amfphp版本使用的编码是as2和as1时代的通讯编码,因此as3使用的时候要为NecConnection指定objectEncoding 为ObjectEncoding.AMF0,amfphp1.9beta版本开始支持ObjectEncoding.AMF3即as3 NecConnection默认的编码,目前的fms还不支持ObjectEncoding.AMF3编码,所以在使用的时候还是要指定NecConnection的objectEncoding为ObjectEncoding.AMF0 ,如果不指定,会提示objectEncoding error的错误



下面是一个播放在使用as3和fms播放mp3的例子:
//by roading http://roading.net/blog
//导入net包
import flash.net.*;
//指定播放的mp3名字
var id = "mp3:love";
var in_ns:NetStream;
var nc = new NetConnection();
//指定编码
nc.objectEncoding = ObjectEncoding.AMF0;
//连接fms的playmp3应用程序
nc.connect("rtmp:/playmp3");
//侦听状态
nc.addEventListener("netStatus",netStatusHandler);

function netStatusHandler(e)
{
 trace("netstate...............")
 //for(var i in e.info)
 //trace(i+"==="+e.info[i])
//连接成功
 if(e.info.code=="NetConnection.Connect.Success")
  {
//获取mp3时间
   nc.call("GetMp3Length", new Responder(lengLoaded), id);
   in_ns = new NetStream(nc);
//播放
   in_ns.play(id);
//设置缓冲的音乐长度
   in_ns.bufferTime = 5;
//侦听ns的状态
   in_ns.addEventListener("netStatus",in_nsnetStatusHandler);
  }
}
//得到mp3的时间
function lengLoaded(length) {
 trace("mp3length==="+length);
}
//
function in_nsnetStatusHandler(e)
{
 trace(e.info.code);
}

posted @ 2008-10-23 10:18  Landy_di  阅读(483)  评论(0编辑  收藏  举报