Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Секреты разработки игр в Macromedia Flash MX - Макар Дж.

Макар Дж. Секреты разработки игр в Macromedia Flash MX — М.: КУДИЦ-ОБРАЗ , 2004. — 608 c.
ISBN 0-201-77021-0
Скачать (прямая ссылка): sekretirazrabotkiigr2004.djvu
Предыдущая << 1 .. 110 111 112 113 114 115 < 116 > 117 118 119 120 121 122 .. 210 >> Следующая

2 ES.sendMessage (msg, who);
3 )
• iа функция имеет два параметра. Первый содержит само посылаемое
сообще-ше, а второй представляет собой адресата сообщения. Мы вызываем
метод ndMessage() объекта ElectroServerAS для посылки этого личного
сообщения. Когда вы входите в комнату, сервер добавляет вас к списку
пользователей !ой комнаты. Всякий раз, когда список пользователей
изменяется (когда кто-то чодит или покидает комнату), сервер посылает
сообщение каждому, кто нахо-IIгея в списке находящихся в комнате. В
результате получения сообщения г сервера о входе пользователя в комнату:
возникает событие roomListChanged. 1пже представлена вызываемая функция.
function roomListChanged(roomList) (
2 var path = chat.roomList;
3 path.removeAl1 () ; path.setChangeHandler("roomClicked", _root);
for (var i = 0; KroomList. length; + + i) (
6 var name = roomList[il.name;
var item = name + "("+roomList[i] . tоta 1 + " )"; path.addltem(item,
name);
9 )
10 }
11 лметр roomList представляет собой массив объектов. Каждый элемент в
мас->11 е представляет собой объект со свойствами name и total, которые
описывают
4 шагу. Name представляет собой имя комнаты, a total представляет
собой чис-
fc j
354
Часть 2. Исследование оа
ло людей в комнате. В строке 5 мы используем цикл for для прохождения в
ни ле всего массива и создания пунктов в компоненте ListBox, который
имеет itf экземпляра 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, то клипу рорир2 дается комап
перейти на определенный кадр, где вы можете ввести новое имя комнаты. Koi
вы ввели имя и нажали кнопку Create button, выполняется следующая функция
1 function createRoom(room) {
2 chat.room.text = room;
3 ES.joinRoom(room);
4 }
Эта функция просто берет переданный параметр и подключает пользоват к
этой комнате.
Теперь давайте сосредоточимся на компоненте окна списка userList. ЭЦ
компонент отображает список пользователей в вашей комнате. Каждый раз,
гда список пользователей изменяется, возникает событие userListChan и
выполняется эта функция.
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 )
[лава 13. Препарирование чата
355
ФЭто может казаться пальбой из пушки по воробья - хранить в объекте лишь
одно свойство, но это хорошая практика на будущее. Усовершенствованный
объект ElectroServerAS может хранить более чем просто имя пользователя -
он может также содержать его адрес электронной почты или, к примеру,
любимые игры. Так что это лишь почва, которую мы подготавливаем.
Параметр userList представляет собой массив. Каждый элемент в массиве
явля-
* ся объектом, который описывает пользователя. Каждый из этих
объектов име-Ьг только одно свойство - name. В строке 2 мы создаем ссылку
с именем path Ilia список userList. В строке 3 мы создаем переменную с
именем enabled для
ранения свойства enabled компонента списка userList.
То, что мы здесь делаем, не является особой хитростью, но требует
некоторого внимания и обсуждения, с тем чтобы вы могли понять все, что
вам нужно и гать о свойствах enabled, getEnabled() и setEnabled().
Значение свойства enabled компонента списка ListBox может быть либо true,
либо false. Если оно riBHo true (значение по умолчанию), то список
активен. Если false, то список неактивен и вы не можете выбрать в нем ни
одного пункта. Когда вы тестировали чат ранее и нажимали на другого
пользователя для того, чтобы его вызвать, "ы, возможно, обратили
внимание, что список userList был недоступен (для того чтобы пользователь
не вызывал другого пользователя, пока текущий вызов не принят, не
отклонен либо не отменен). Как только вы отклоните вызов, список
II гановится доступным снова. Каждый раз, когда вызывается функция
LserListChangedQ, мы полностью перестраиваем список userList. Если
свойство enabled равно false, то список не может быть обновлен, когда мы
пытаемся изменить его содержимое. Так, если вы получите вызов и затем
внесете изменения
¦ список пользователей, то список пользователей не будет обновлен
правильно, ^поскольку свойство доступности равно false. Чтобы избежать
этой проблемы, ' ы храним свойство enabled в переменной с именем enabled.
Затем мы устанавливаем свойство enabled списка в true (строка 4). После
Предыдущая << 1 .. 110 111 112 113 114 115 < 116 > 117 118 119 120 121 122 .. 210 >> Следующая