English Version            Русская версия

 [ Разделы сервера ]  [ Карта сервера ]  [ Новости сервера ] [ Обратная связь ]



Далее мы рассматриваем функцию roomVarChanged() и поэтому мы устанавливаем эти переменные на сервере в первую очередь. Это функция roomVarChanged(): 1 function roomVarChanged(ob){ 2 if (ob.player1 =="here"&&ob.player2 =="here"){ 3 locked =false; 4 if (!initializedYet){ 5 initializedYet =true; 6 startGame(); 7 } 8 }else { 9 locked =true; 10 if (initializedYet){ 11 popup.gotoAndStop("player left"); 12 } 13 } 14 } Эта функция вызывается всякий раз, когда переменная в вашей комнате создана, модифицирована или удалена. Объект передается со всеми находящимися в вашем пространстве переменными. Есть некоторые другие необязательные параметры, которые мы здесь не используем, и которые передают информацию о том, какие переменные были модифицированы или удалены. (См. Приложение С, «Объект ElectroServerAS», для получения дополнительной информации, особенно переменную onRoomVarChange.) Как вы можете видеть в строке 2, мы проверяем, равны ли player1 и player2 значению «here». Если да, то это означает, что оба игрока находятся в комнате и готовы к игре. Тогда мы устанавливаем значение переменной locked в false. Значение locked равно true перед тем, как мы проверили наличие обоих игроков. Мы используем эту переменную для удержания игрока от совершения хода до того, как готовы оба игрока. Вы увидите позднее, как это используется. В строке 4 мы проверяем, равна ли переменная initializedYet значению true или нет. Если она не равна true, то мы устанавливаем ее в true и вызываем функцию startGame(). Переменная initializedYet используется для определения, когда игрок покинул игру. В сроке 10 вы можете видеть, что если initializedYet равна true, и player1 или player2 не равен «here», то игрок покинул игру. Способность правильно определять, когда игрок покинул игру, была главной проблемой во Flash играх. Это труднее, чем должно было бы быть. Это может быть сделано с помощью обычных многопользовательских серверов, но обычно требует нудного сравнения списка пользователей
Hosted by uCoz