对于新手来说,可能对服务器端的脚本文件如何使用不太清楚,而是直接拷贝samples中的项目来使用,因此会产生一些无法理解的问题,这里提到的就是关于远程共享对象无法创建的问题:
如果你想创建一个远程共享对象,如下:
var so:SharedObject;
so = SharedObject.getRemote("so_name",nc.uri,false);
fms参考文档或网上都有介绍,上面的方法功能为:如果有此共享对象则连接,如果没有则创建
共享对象有一个同步事件需要监听一下,当远程共享对象发生改变时进行一些相应的操作,如下:
so.addEventListener(SyncEvent.SYNC, syncHandler);
syncHandler为事件处理方法,由用户自己定义,比如说定义如下:
function syncHandler(event:SyncEvent):void{
switch(event.changeList[0].code){
case "clear":
Alert.show("clear");
break;
case "success":
Alert.show(success);
break;
}
}
问题来了,有些人会发现监听事件无法被触发,通过FMS的控制台应用程序会发现没有创建远程共享对象。
其中一个很容易产生的原因就是在服务器端的application文件夹下对应的项目文件夹中拷贝了samples中的main.asc文件,因为如果做测试的话,创建远程共享对象是不需要main.asc的,而拷贝的main.asc则进行了与创建远程共享对象无关的一此操作,因此客户端的事件监听没有任何反应。此问题也会发生在视频录制上边,视频会录制到对应的项目文件夹下边,是由系统自行创建的,用户可以尝试新建一个空文件夹进行测试,问题可能会解决哟
再有,FMS3或更高版本对共享对象进行修改时请使用setProperty()方法