Всем здравствуйте!
Я сейчас пишу приложение, и у меня возник такой вопрос:
Есть сервер, реализованный на php. Методы класса осуществляют доступ к базе и производят выборку.
Есть клиентская часть, реализованная на as3. Приложение представляет собой интерактивное взаимодействие графических объектов между клиентами и сервером. В тот момент, когда первый пользователь "подключается" к серверу и рисует геометрическую фигуру на поле, она должна отображаться на экране у второго, который так же подключен к серверу и загрузил эту же swf. После этого наоборот: когда второй рисует фигуру, первый должен ее увидеть.
Координаты фигур (ходы) записываются в базу.
Подскажите, как реализовать взаимодействие между клиентами и сервером!
Была идея использовать следующее: в переменную записывается номер последнего хода, после запускается функция-слушатель, которая запускает запрос на получение максимального номера хода и сравнение его со значением переменной. Если неравенство, значит второй пользователь совершил ход, тогда первый пользователь снова может получать фокус. Но так вешается:
Код AS3:
private function mouseDownListener (e:MouseEvent):void {
...
wait();
...
}
public function wait():void{
parameter = "SELECT max(move_id) FROM move WHERE game_id="+last_non_fin_game_no;
var variables:URLVariables = new URLVariables();
variables.qu = variableText;
var request:URLRequest = new URLRequest("php_file_path");
request.data = variables;
request.method = URLRequestMethod.POST;
loader = new URLLoader();
loader.addEventListener(Event.COMPLETE, startCheckListener);
loader.load(URLReq);
}
public function startCheckListener (e:Event):void {
var myTimer:uint;
while (last_move_no = loader.data)
{
myTimer = setTimeout(wait, 1000);
}
trace("Переход фокуса на другого игрока");
}
Может быть, как-то по-другому это делается? Гуру, подскажите, пожалуйста.