2016-10-01 7 views
1

Windows에서 게임 서버 FMS 4.5를 사용하고 있으며, 이미 선임으로 일하고 있으며 클라이언트 앱은 구형 CS4에서 작성되었으며 모두 완벽합니다.원격 공유 객체가 업데이트 후 동기화 메서드를 실행하지 않습니다.

이제 AS3에서 모바일 앱을 만들고 이전 플래시 프로그램에서 완벽하게 작동하는 원격 공유 객체에 문제가 있습니다.

사용자가 앱에 로그인하면 onSync 방식의 업데이트가 전송됩니다. 그러나 원격 공유 객체가 업데이트 될 때마다 업데이트를받지 못합니다. 내가 NetConnection 객체로 main_nc이

예를 들어, 클라이언트 : 내가 말했듯이

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 *를 사용하는 경우이 코드는 기존 플래시 소프트웨어,하지만 늘 업데이트하고있다"그것은 당신이 CS4에서 AS3를 사용하지 않는 한 다음 어떻게 이것을 같은 코드? 이전에 어떤 코드를 사용 했습니까? IDE 이름을별로 이해하지 못하는 언어 이름과 혼합합니다. 명확히하십시오. – null

+0

나는 오랜 옛날 as2로 플래시 CS4에서 웹을위한 코드를 작성했다. 이제 as3에서 모바일 장치 용 응용 프로그램을 만들고 있는데 실제로 작동하기 때문에 웹 서버에서는 아무 것도 변경하지 않지만 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()); 
    } 
}