[FMS]Flash Media Server之教程附示例代码(7)
共享对象
共享对象,说英文大概你比较熟ha~ SharedObject, 恩flash中有两种sharedObject,local sharedobject (LSO) 和 remote sharedobject (RSO),也就是本地共享和远程共享,偶们讨论远程的,不过之前你最好先去了解了解本地的,对你有好处...
RSO在服务器端是以文件形式存储的,扩展名是.fso,为什么不是.rso?....我也想问呢- -b
代码
初始化RSO需要先与服务器建立一个连接,续上节 ,我们先与服务器建立一个连接
- //初始化远程共享要利用nc通道
- var myNC = new NetConnection();
- myNC.onStatus = function(info) {
- if (info.code == "NetConnection.Connect.Success") {
- //成功则利用此nc初始化rso
- initRSO(this);
- }
- };
跟以前的代码一样,只是连接成功后多了一个initRSO()函数,看不懂的回去重头再看一下。。。
下边是initRSO了,跟连接结构差不多
- function initRSO(NC) {
- //在服务器上建立myRSO.fso文件,第2个参数指定nc通道,
第3个指定文件在服务器上持久保留,即使服务器重启了,还是有- my_rso = SharedObject.getRemote("myRSO", NC.uri, true);
- my_rso.onSync = function(list) {
- //list 是一个对象数组 ,类似这种[{name:"x",code:"success"},
{name:"y",code:"success"}] ,下边会详细讲- //初始成功
- };
- my_rso.connect(NC); //连接
了解了吧,看一个完整的例子,画一个mc起名叫mc,在第一帧上写代码
- //初始化远程共享要利用nc通道
- var myNC = new NetConnection();
- myNC.onStatus = function(info) {
- if (info.code == "NetConnection.Connect.Success") {
- //成功则利用此nc初始化rso
- initRSO(this);
- }
- };
- myNC.connect("rtmp://localhost/test1"); //不会不知道要建test1文件夹吧
- function initRSO(NC) {
- my_rso = SharedObject.getRemote("myRSO", NC.uri, true);
- //onSync是回调函数,每次服务器端so数据有改变,这里都会有反映!
这里的意思每当有人按鼠标,这里都会有反映,我们读取so的data下的值就可以了- my_rso.onSync = function() {
- mc._x=this.data.x
- mc._y=this.data.y
- };
- my_rso.connect(NC);
- }
- onMouseDown = function () {
- //改变so的数据
- my_rso.data.x = _root._xmouse
- my_rso.data.y = _root._ymouse
然后发布设置中设置只允许网络,发布看看现在你可以开多个播放器窗口,点其中一个,看看其他的窗口变不变
源文件: http://www.nshen.net/blog/attachments/200601/11_145320_test3.fla
热门文章推荐
- [FMS]Adobe FMS产品(Adobe Flash Media Server)使用介绍(组图)
- [FMS]Flash Media Server之教程附示例代码
- [RTMP]国产RTMP/HLS直播服务器simple-rtmp-server
- [WOWZA]用wowza流媒体服务器发布和播放直播流(RTMP)
- [RTMP]又一款rtmp类的服务器openrtmfp流媒体服务器
- [RTMP]adobe之FMS视频直播解决方案流程介绍(组图)
- [RTMP协议]实时消息传输协议 (RTMP) 常识性介绍
- [FMS]Adobe的Flash Media Server服务器(FMS服务器)安装