доброго времени суток, уважаемые форумчане, недавно нашел несколько примеров создания чатов на флеше с использованием технологии RTMFP и p2p. Собс-но примеры для чатов были хорошими, и я решил немного углубится в эту тему. Вот код

Код AS3:
public class main extends MovieClip {
var response:String;
var s:Socket;
var p2p:p2pConnect= new p2pConnect();
var Rpack,Spack:Object;
var Rp:ByteArray;
var r,r2:round;
var i=false;
var c:Controls = new Controls(stage);
var nc:NetConnection;
public function main() {
nc = new NetConnection();
//nc.addEventListener(NetStatusEvent.NET_STATUS, rtmfpHandler);
nc.connect("rtmfp://p2p.rtmfp.net/" + "*****************************");
connect_btn.addEventListener(MouseEvent.CLICK, createConnect);
addEventListener(Event.ENTER_FRAME,lookConnect);
// constructor code
}
function createConnect (e:MouseEvent) {
addChild(p2p);
}
function lookConnect (e:Event) {
if(p2p.Status=="Connected"){
connect_btn.removeEventListener(MouseEvent.CLICK, createConnect);
removeEventListener(Event.ENTER_FRAME,lookConnect);
netPlay();
}
}
function netPlay () {
gotoAndStop(2);
r=createRound (Math.random()*540,Math.random()*390);
addChild(r);
addEventListener(Event.ENTER_FRAME,readP2Packs)
p2p.sendP2Package(createP2Packs(r));
addEventListener(Event.ENTER_FRAME,moveO);
}
function moveO (e:Event) {
if(c.forward){r.y-=1;p2p.sendP2Package(createP2Packs(r));
};
if(c.back){r.y+=1;p2p.sendP2Package(createP2Packs(r));
};
if(c.lft){r.x-=1;p2p.sendP2Package(createP2Packs(r));
};
if(c.rght){r.x+=1;p2p.sendP2Package(createP2Packs(r));
};
}
function sendP2Packs(e:TimerEvent) {
p2p.sendP2Package(createP2Packs(r))
}
function readP2Packs(e:Event) {
Rpack=p2p.readP2Pakcage();
Rpack.pack.position=0;
if(!i){r2=createRound(Rpack.pack.readInt(),Rpack.y);addChild(r2);i=true}else{
r2.x=Rpack.pack.readInt();
r2.y=Rpack.pack.readInt()}
tt.text=(r2.x+" "+r2.y);
}
function createP2Packs(r:round):Object
{
var ba:ByteArray = new ByteArray();
ba.writeInt(int(r.x));
ba.writeInt(int(r.y));
var o:Object = new Object();
o.pack=ba;
return o;
}
function createRound (X:Number,Y:Number):round {
var ro=new round();
ro.x=X;
ro.y=Y;
return ro;
}
}
Немного пояснений: две проги конектятся друг к другу, каждая рисует свой кружок, координаты которого передает другой. пользователь с помощью клавиатуры изменяет координаты своего круга (WASD) и прога шлет новые координаты, и т.д. проблемма в том что проходит задержка время между изменением координат в одной и другой программе(где-то 0,5-1с). Собственно вопрос: есть ли какие-то способы уменьшения времени задержки, и лучшей синхронизации действий между приложениями. Если есть какие нить ссылки на инфу по этой теме буду премного благодарен
