AlexCooper
26.11.2008, 01:11
Не могу потянуть за собой удаление "шаредов" клиента. Не срабативает Дисконнект.
Части кода
_root.client_nc.connect("rtmp://localhost/rerait/"+_root.map.zone ,'vasya');
application.onConnect = function(newClient, name )
{
newClient.name = name;
newClient.id = "u" + application.nextId++;
application.userId++;
index= new XML();
index.load('http://localhost/userGrid/'+newClient.name+'.xml');
index.ignoreWhite=true;
function razbor_xml (xml)
{
if (xml.status != 0)
{
trace ('XML документ содержит ошибку');
return;
}
array = [];
array = xml.childNodes;
for (i = 0; i < array.length; i++)
{
if (index.childNodes[i].attributes["name"]==newClient.name)
{
application.users_so.setProperty(name+'.P',index.childNodes[i].attributes["pers"]);
application.users_so.setProperty(name+'.H',index.childNodes[i].attributes["heads"]);
}
}
application.users_so.setProperty(newClient.name+'.Z',zone);
application.users_so.setProperty(newClient.name+'.X',Math.round(Math.random()*790+30));
application.users_so.setProperty(newClient.name+'.Y',Math.round(Math.random()*400+20));
application.users_so.setProperty(newClient.name+'.R',Math.round(Math.random()*180)*(3-Math.round(Math.random()*2)));
application.users_so.setProperty(newClient.name+'.F',false);
application.users_so.setProperty(newClient.name+'.FT',0);
// принимаем подключения этого пользователя
application.acceptConnection(newClient);
}
application.onDisconnect = function(client)
{
trace("disconnect: " + client.name);
for (var i = 0; i < application.clients.length; i++)
{
application.clients[i].call("Trace", client);
}
application.userId--;
application.users_so.setProperty(client.name, null);
application.users_so.setProperty(client.name+'.X', null);
application.users_so.setProperty(client.name+'.Y', null);
application.users_so.setProperty(client.name+'.P', null);
application.users_so.setProperty(client.name+'.H', null);
application.users_so.setProperty(client.name+'.R', null);
application.users_so.setProperty(client.name+'.F', null);
application.users_so.setProperty(client.name+'.FT', null);
application.users_so.setProperty(client.name+'.Z', null);
} получаеться так что шареды всё равно сохраняються(((
UPD: Дауж, наверное я в игноре, почти месяц на все мои вопросы ответов ноль. Так и приходиться как всегда самому "ковыряться", что потом оказуеться совсем не сложно, только кто б подсказал.
Да мои подкручивания болтов призвели к тому что всё таки данные удалаються кроме одно условия, если два клиента побывали в 1-й комнате они там навечно, когда ж по отдельностях прыгают по комнатах никого не выдно стоит попасть в 1 и всё, как будто заморозились.
Части кода
_root.client_nc.connect("rtmp://localhost/rerait/"+_root.map.zone ,'vasya');
application.onConnect = function(newClient, name )
{
newClient.name = name;
newClient.id = "u" + application.nextId++;
application.userId++;
index= new XML();
index.load('http://localhost/userGrid/'+newClient.name+'.xml');
index.ignoreWhite=true;
function razbor_xml (xml)
{
if (xml.status != 0)
{
trace ('XML документ содержит ошибку');
return;
}
array = [];
array = xml.childNodes;
for (i = 0; i < array.length; i++)
{
if (index.childNodes[i].attributes["name"]==newClient.name)
{
application.users_so.setProperty(name+'.P',index.childNodes[i].attributes["pers"]);
application.users_so.setProperty(name+'.H',index.childNodes[i].attributes["heads"]);
}
}
application.users_so.setProperty(newClient.name+'.Z',zone);
application.users_so.setProperty(newClient.name+'.X',Math.round(Math.random()*790+30));
application.users_so.setProperty(newClient.name+'.Y',Math.round(Math.random()*400+20));
application.users_so.setProperty(newClient.name+'.R',Math.round(Math.random()*180)*(3-Math.round(Math.random()*2)));
application.users_so.setProperty(newClient.name+'.F',false);
application.users_so.setProperty(newClient.name+'.FT',0);
// принимаем подключения этого пользователя
application.acceptConnection(newClient);
}
application.onDisconnect = function(client)
{
trace("disconnect: " + client.name);
for (var i = 0; i < application.clients.length; i++)
{
application.clients[i].call("Trace", client);
}
application.userId--;
application.users_so.setProperty(client.name, null);
application.users_so.setProperty(client.name+'.X', null);
application.users_so.setProperty(client.name+'.Y', null);
application.users_so.setProperty(client.name+'.P', null);
application.users_so.setProperty(client.name+'.H', null);
application.users_so.setProperty(client.name+'.R', null);
application.users_so.setProperty(client.name+'.F', null);
application.users_so.setProperty(client.name+'.FT', null);
application.users_so.setProperty(client.name+'.Z', null);
} получаеться так что шареды всё равно сохраняються(((
UPD: Дауж, наверное я в игноре, почти месяц на все мои вопросы ответов ноль. Так и приходиться как всегда самому "ковыряться", что потом оказуеться совсем не сложно, только кто б подсказал.
Да мои подкручивания болтов призвели к тому что всё таки данные удалаються кроме одно условия, если два клиента побывали в 1-й комнате они там навечно, когда ж по отдельностях прыгают по комнатах никого не выдно стоит попасть в 1 и всё, как будто заморозились.