2016-10-01 40 views
1

我有游戏服务器,FMS 4.5在Windows上,已经工作知府,和客户端应用程序在旧的CS4中创建,并且都是完美的。远程共享对象没有触发onSync方法更新后

现在我想在AS3中创建一个移动应用程序,并且在远程共享对象方面存在问题,这是在旧版Flash程序中完美工作的。

当用户登录到应用程序时,我收到了onSync方法的更新。但是,每当远程共享对象更新时,我都没有收到更新。

例如,在客户端,在那里我有main_nc为NetConnection对象:

var ncu_so:SharedObject = SharedObject.getRemote("Zusers", main_nc.uri, false); 
ncu_so.addEventListener(SyncEvent.SYNC, syncNCU); 
ncu_so.client=this; 
ncu_so.connect(main_nc); 

private function syncNCU(e:SyncEvent):void { 
    ........ 
    //here I receive new info.... 
} 

和服务器样本...

application.onAppStart = function(){ 
    this.Zusers_so = SharedObject.get("Zusers", false); 
    ........... 
} 
function sampleUserEnter(client) { 
    var t=new Object(); 
    t.username=client.username; 
    application.Zusers_so.setProperty(client.id,t); 
    //this one call is synced with app 
} 
function sampleChangeName(client,newName) { 
    var t=application.Zusers_so.getProperty(client.id); 
    t.username=newName; 
    application.Zusers_so.setProperty(client.id,t); 
    //this IS NOT syncing with app 
} 

正如我所说的,这个代码正在与旧闪光灯软件,但在使用AS3时不会更新。任何想法?

+0

“*该代码使用AS3 *当老Flash软件,但不会更新工作”这你CS4没有使用AS3那么这是怎么了相同的代码?你之前使用过什么代码?您正在将IDE名称与语言名称混合起来,这没有多大意义。请澄清。 – null

+0

我很早以前就在flash CS4中用旧的as2编写了代码,它正在工作。现在我正在为as3中的移动设备开发应用程序,并且不会更改Web服务器上的任何内容,因为它实际上正在工作,但在AS3中,我介绍的刷新远程共享对象有一些麻烦。 –

回答

1

我找到了一个简单的解决方案。不知道为什么它的工作原理,但它的工作原理....

var ncu_so:SharedObject = SharedObject.getRemote("Zusers", main_nc.uri, false); 
ncu_so.addEventListener(SyncEvent.SYNC, syncNCU); 
//I add the listener for checking status 
ncu_so.addEventListener(NetStatusEvent.NET_STATUS, statusNCU); 
ncu_so.client=this; 
ncu_so.connect(main_nc); 

private function syncNCU(e:SyncEvent):void { 
    ........ 
    //here I receive new info.... 
} 
//In function for NetStatus event, I just set a simple property 
//which I do not use in the app.. 
//and sunchronization start working as usual after initial sync 
private function statusNCU(ev:NetStatusEvent):void { 
    if (ev.info.code == "NetConnection.Connect.Success") { 
     ncu_so.setProperty("anyPropertyName",new Date()); 
    } 
}