Если нажимается кнопка Accept, выполняется acceptChallenge(). Ниже приводится код этой функции:
1 function acceptChallenge(){
2 chat.userList.setEnabled(true);
3 chat.popup.gotoAndStop(1);
4 ES.acceptChallenge();
5 this.gotoAndStop("Game");
6 }
Когда функция выполнена, список userList снова доступен, экземпляр клипа popup переводится в кадр 1, и вызывается метод acceptChallenge(). Метод acceptChallenge() посылает сообщение вызывающему, давая ему знать, что вы приняли вызов. Тогда, в строке 5, мы переходим из текущего кадра на метку Game. Кадр Game является лишь заготовкой для многопользовательской игры, которую вы будете позднее использовать.
Если пользователь нажимает на Decline вместо Accept, то выполняется следующая функция:
1 function declineChallenge(){
2 chat.userList.setEnabled(true);
3 chat.popup.gotoAndStop(1);
4 ES.declineChallenge();
5 }
Когда функция выполнена, список userList доступен, экземпляр клипа popup возвращен обратно на первый кадр, а метод declineChallenge() выполнен. Метод declineChallenge() объекта ElectroServerAS посылает сообщение вызывающему, давая ему знать, что вы отклонили вызов.
Когда вызывающий получает ответ на вызов, выполняется функция challengeAnswered():
1 function challengeAnswered(response){
2 if (response =="accepted"){
3 _root.gotoAndStop("Game");
4 }else if (response =="declined"){
5 chat.popup.gotoAndStop("Declined");
6 chat.popup.msg.text ="The challenge has been
.declined.";
7 }else if (response =="autodeclined"){
8 chat.popup.gotoAndStop("Declined");
9 chat.popup.msg.text ="The challenge has been
.automatically declined.";
10 }
11 chat.userList.setEnabled(true);
12 }
Параметр response содержит строку, которая сообщает, что вызов был «accepted» (принят), «declined» (отклонен), или «autodeclined» (автоотказ)