Когда вы нажимаете на имя, вызывается функция _root.privateMessage(), и в нее передается имя пользователя.
Функция formatBody() делает то же самое, что и formatFrom(), только она использует другой цвет и не превращает текст в гиперссылку.
Теперь давайте взглянем на функцию privateMessage(). Ниже приведен ее код:
1 function privateMessage(who){
2 chat.popup3.who =who;
3 chat.popup3.gotoAndStop("Private Message");
4 }
Эта функция вызывается, когда кто-нибудь нажимает на имя пользователя в окне. Параметр who содержит пользователя, имя которого нажато. Затем popup3 переходит в определенный кадр, так чтобы вы могли ввести сообщение для отправки. Когда вы нажимаете на кнопку Send, вызывается следующая функция:
1 function sendPrivateMessage(msg,who){
2 ES.sendMessage(msg,who);
3 }
Эта функция имеет два параметра. Первый содержит само посылаемое сообщение, а второй представляет собой адресата сообщения. Мы вызываем метод sendMessage() объекта ElectroServerAS для посылки этого личного сообщения.
Когда вы входите в комнату, сервер добавляет вас к списку пользователей этой комнаты. Всякий раз, когда список пользователей изменяется (когда кто-то входит или покидает комнату), сервер посылает сообщение каждому, кто находится в списке находящихся в комнате. В результате получения сообщения от сервера о входе пользователя в комнату, возникает событие roomListChanged. Ниже представлена вызываемая функция:
1 function roomListChanged(roomList){
2 var path =chat.roomList;
3 path.removeAll();
4 path.setChangeHandler("roomClicked",_root);
5 for (var i =0;i<roomList.length;++i){
6 var name =roomList [i ].name;
7 var item =name+"("+roomList [i ].total+")";
8 path.addItem(item,name);
9 }
10 }
Параметр roomList представляет собой массив объектов. Каждый элемент в массиве представляет собой объект со свойствами name и total, которые описывают комнату