如何在AS3和Red5中使用远程SharedObject - 第二次尝试

时间:2014-11-27 16:05:10

标签: actionscript-3 flash actionscript red5 shared-objects

七个月前我在StackOverflow中问this question,但显然没有人能给我一个满意的答案。我搜索整个互联网无济于事。所以我再次在这里发布,希望这可以解决所有人的好处。请耐心等待,因为我真的需要这样做。

到目前为止,这是我的代码。

import flash.net.SharedObject;
import flash.events.SyncEvent;
import flash.events.MouseEvent;

var nc:NetConnection; 
var so:SharedObject;
nc = new NetConnection(); 
nc.client = { onBWDone: function():void{} };
nc.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus); 
nc.connect("rtmp://localhost:1935/live");

var t = new TextField();
addChild(t);

var c = new TextField();
c.y=100;
c.text="SET SO";
addChild(c);
c.addEventListener('click',sd);
function sd(e:MouseEvent):void{
   so.setProperty("total",3);
   //so.setDirty("total");
   //trace("a"+so.data.total);
}

function onNetStatus(event:NetStatusEvent):void{ 
   if(event.info.code == "NetConnection.Connect.Success"){ 
      so = SharedObject.getRemote("shObj",nc.uri);
      so.addEventListener(SyncEvent.SYNC,syncHandler);
      so.connect(nc);
      so.setProperty("total",2);
   } 
}
function syncHandler(event:SyncEvent):void{
   if (so.data.total) {
      t.text = so.data.total;
   } 
}

当我点击文字' SET SO'时,我希望看到数字3。但是,似乎syncHandler永远不会被触发。我该怎么做才能让它发挥作用?我错过了什么吗?服务器是否正确链接?

0 个答案:

没有答案