Разрабатываю онлайн игру во Flash. Действия в игре проходят в реальном времени. Игра работает по принципу постоянного обмена данными между флешем и базой данных MySQL. Запись и загрузка данных в БД обеспечивается отдельными php-скриптами.
Герой бегает по полю, а его координаты постоянно сохраняются в БД. Если перезапустить игру и снова зайти в нее, его координаты должны считаться из БД и герой должен оказаться на том же месте, при котором он был когда вышел из игры.
Сначала все идет нормально. Когда игрок бегает по полю, координаты успешно сохраняются в БД. Но когда я перезапускаю страницу и вновь захожу в игру, то герой почему-то оказывается на той позиции на которой был и при предыдущем входе в игру.
Допустим по умолчанию герой находится в координатах 100;100. Я перевожу его в координаты 200;100. Проверив БД я могу убедится что в ней сохранились координаты 200;100.
Но когда я перезапускаю страницу и вновь захожу в игру, игрок снова стоит в координатах 100;100. Перевожу героя в другие координаты, выхожу, захожу опять, а герой снова стоит в координатах 100;100. Однако если повторно зайти в игру через некоторое время (например через 10 минут), то координаты считаются из БД успешно и герой станет в позиции, где я его оставил.
Протестировал работу php-скриптов. Открыл их на отдельных вкладках браузера. Запустил скрипт записи, передав ему произвольные переменные координат. Сразу после этого запустил скрипт считывания. Выводятся только что внесенные мной координаты. Могу повторять эту операцию сколько угодно раз. На уровне скриптов все работает как и должно. Зашел в игру и передвинул игрока в какие-либо координаты. Вновь запустил скрипт считывания, а он вернул мне те самые переменные которые были до того как я передвинул героя.
Вновь пытаюсь записать данные в игру, обратившись отдельно к скрипту записи. Запись проходит успнешно. Запускаю скрипт считывания, а он опять возвращает уже не новые, а прежние координаты. Тоесть как только в записи данных поучаствывал флеш, скрипт считывания перестает работать.
Делаю следующую операцию: просто обновляю страницу со скриптом считывания. После обновления он наконец возвращает нововнесенные координаты и начинает работать правильно. Сразу же после этого захожу в игру. Игрок становится в позиции соответствующую координатам, которые находятся в БД. Однако если передвинуть его, пролема повторяется в вновь, до тех пор пока я не запущу скрипт считывания на отдельной вкладке или если он уже открыт обновлю страницу.
Надеюсь, я обьяснил все доходчиво
Обьясните пожалуйста, почему происходит такая ошибка и как мне ее избежать. Заранее благодарен!