В точности такой же код ActionScript используется для чата игры в «Крестики-нолики» и «9-шаров».
Также в кадре Game вы обнаружите клип, который содержит все активы игры и код ActionScript. Двойным щелчком на этом клике просмотрите его содержимое. Вы увидите четыре слоя: Multiplayer Actions, Iso Object, Game Actions, и Assets. Единственный слой, который нас здесь интересует, это слой Multiplayer Actions.
Щелкните на слой Actions и откройте панель Actions. Этот код ActionScript очень сходен с кодом ActionScript, который находится в слое Multiplayer Actions игры 9-шаров. Когда мы первый раз заходим в этот кадр, мы делаем следующее:
1. Определяем обработчики событий для moveReceived и onRoomVarChange.
2. Подключаемся к комнате игры.
3. Устанавливаем переменную комнаты, которая сигнализирует, что игрок находится в комнате и готов играть.
Функция onRoomVarChanged вызывается, когда переменная комнаты создана, изменена или удалена. Переменные комнаты содержат информацию, говорящую нам, находятся ли оба игрока в комнате и готовы ли они оба для получения хода. Если они оба находятся в комнате, и это первый момент, когда мы определили, что они оба в комнате, то мы вызываем функцию startGame(). Если они оба готовы ходить, то мы разблокируем игру установкой locked =false.
Функция sendMove() передает любой объект, который мы посылаем от текущего игрока противнику. Функция moveReceived() вызывается после этого в экземпляре игры противника. Ниже приведен код функции moveReceived():
1 function moveReceived(ob){
2 if (ob.type =="move"){
3 clickAccepted(ob.xm,ob.zm,ob.x_cell,ob.z_cell);
4 }else if (ob.type =="restart"){
5 restart();
6 }
7 }
Как вы можете видеть из этой функции, есть только два вида ходов – реальный ход игры и ход для перезагрузки. Когда получен ход вида move, из объекта выделяются четыре переменные и передаются в функцию clickAccepted(). Эти значения описывают конечное положение, до которого должен дойти персонаж, и строку и номер конечной плитки