Name представляет собой имя комнаты, а total представляет собой число людей в комнате. В строке 5 мы используем цикл for для прохождения в цикле всего массива и создания пунктов в компоненте ListBox, который имеет имя экземпляра roomList. Мы также настраиваем его таким образом, что когда производится клик на комнате, вызывается функция roomClicked(). Ниже представлен код функции roomClicked():
1 function roomClicked(path){
2 var name =path.getValue();
3 chat.room.text =name;
4 ES.joinRoom(name);
5 }
Когда эта функция вызывается, в нее передается путь к пункту окна списка, который был выбран. Мы используем его для извлечения имени комнаты и затем применяем метод joinRoom() для подключения к этой комнате.
Если вы нажимаете на кнопку Create Room, то клипу popup2 дается команда перейти на определенный кадр, где вы можете ввести новое имя комнаты. Когда вы ввели имя и нажали кнопку Create button, выполняется следующая функция:
1 function createRoom(room){
2 chat.room.text =room;
3 ES.joinRoom(room);
4 }
Эта функция просто берет переданный параметр и подключает пользователя к этой комнате.
Теперь давайте сосредоточимся на компоненте окна списка userList. Этот компонент отображает список пользователей в вашей комнате. Каждый раз, когда список пользователей изменяется, возникает событие userListChanged и выполняется эта функция.
1 function userListChanged(userList){
2 var path =chat.userList;
3 var enabled =path.getEnabled();
4 path.setEnabled(true);
5 path.removeAll();
6 path.setChangeHandler("personClicked",_root);
7 for (var i =0;i<userList.length;++i){
8 path.addItem(userList [i ].name);
9 }
10 path.setEnabled(enabled);
11 }
Это может казаться пальбой из пушки по воробьям, хранить в объекте лишь одно свойство, но это хорошая практика на будущее. Усовершенствованный объект ElectroServerAS может хранить более чем просто имя пользователя – он может также содержать его адрес электронной почты или, к примеру, любимые игры