![]() |
Как добавить слушателя?
Как нужно поставить слушателя на функцию, чтобы она выполнилась ТОЛЬКО ТОГДА, когда произошло изменение значение какой-либо переменной, а не всё время проверяла её весь промежуток времени?
|
Так вы же эту переменную сами меняете, или в этом замешаны патустаронние силы?
|
я через ComboBox раздела Components её меняю. Но дело в том, что обычный мой способ - это функция, на которой висит setInterval с задержкой 1 секунда, которая проверяет, а не изменилась ли эта переменная? Поэтому мне и надо как-то опознать, что она изменилась ИМЕННО В ЭТОТ МОМЕНТ, чтобы не перепроверять её миллион раз. Вот.
|
А у ComboBox кто-то события отменил?
|
ААА! change?????
а подскажите примерно? |
Цитата:
|
эмм... а если у меня Flash 8?
|
Правильная ссылка для ComboBox, AS2.
Смотри список событий "Event summary for the ComboBox class". Выбираете нужное и вызываете нужную функцию в обработчике события. |
Взяв код за основу, мой флеш завис... Что тут не так?
Код AS1/AS2:
|
Каша, а не код. Скажи своему флешу, пусть оформляет получше :)
Этот кусок, часом, не засунут у тебя в onEnterFrame или под setInterval ? |
Нет. Он вставлен в Мувиклип "панели", отвечающей за подключения пользователя к игре, а вот код _root.authentific.setsts.value - это как раз относится к ComboBox'у, отвечающий за переключение статуса Он/Офф лайн. Сейчас я вообще расскажу, что у меня, да как...
Я создаю мультиплеерскую игру и у меня возникла проблема по поводу добавления пользователя в онлайн-списки. Ведь если пользователь заходит в игру, то он опять добавляется и добавляется. И теперь фактически онлайн - 1 юзер, на цифрах - 100500 юзеров.. Я решил от этой проблемы избавиться, добавив дополнительные фукции в мувиклип authentific, в которой в принципе хранятся все переменные, относящиеся к регистрации, авторизации, онлайн-данные (логин, пароль, статус и т.п.). Осуществил я эти возможности путем ежесекундной проверки согласования UNIX-времени (кол-во секунд с 1.01.1970, по-моему так...). Одна из двух первых функций отправляет время в юзерский файл, другая - проверяет, а не отличается ли это время больше, чем на 5 секунд. Если разница больше 5 - юзер off, меньше - on. При этом, этот статус отправляется в файл статуса юзера. Затем третья функция смотрит файл статуса, и если юзер on, то идет проверка онлайн-списков. Если юзер есть в этом списке (имеется в виду наличие 4-ех файлов: логин, х-координата, y-координата и угол поворота), то просто будет стоять на готове, как только не поступит команда off с сервера. P.S. Только что пришла идея: вместо 4-ех файлов - один со всеми данными...... Команда off с сервера (файл статуса) придет только тогда, когда разница составит больше 5 секунд, что осуществляется как раз тем самым переключателем, про который я говорил выше. НО! Проверка положения (по моему способу - это нубский setInterval в 10 мс для функции проверки положения переключателя: "а не изменилось ли положение переключателя???") будет каждые 10 мс запускать проверку онлайн-листов, что будет накладно и для клиента и для сервера. Тут-то мне и нужен слушатель для того, чтобы проверка запускалась только в тот момент, когда происходит переключение статуса. Эта же функция, отвечающая за онлайн-списки, если она получит команду off, то тоже только в этот момент запускает новую проверку, во время которой произойдет удаление этих четырех файлов (P.S. Или одного....). Четвертая функция отвечает за проверку количества юзеров-онлайн. Проверив наличие файлов в онлайн-списке, она создаст массив, куда запишет всех онлайн-юзеров. А вот тут начнется уже зацикленный в 100 мс процесс, который будет "прогонять" этот массив. "Прогонка" включает в себя: дублирование мувиков-героев, считывание настройки цвета героя, считывание координат и углов поворота. При этом, всё это будет высвечиваться на основной сцене. Отправка этих данных будет сразу же после нажатия или движения мыши. Вот в принципе и всё. Сейчас попробую опять свой нубский (но немного другой способ) проверки переключателя. Если получится - сообщу... Добавлено через 5 минут Кстати... Я вот тут подумал... Зачем мне онлайн пользователи? Ведь все эти файлы с координатами, углами и прочим я могу сделать в основной папке users! При этом будет меньше проблем... Но потом до меня дошло: если я этого не сделаю, то каждый новый пользователь будет добавляться на поле и всё... Рандом координат я, конечно же, сделал.. Но как-то некрасиво получится: куча пользователей и все обездвижены... Или как вы считаете? С онлайнами или без них? Добавлено через 25 часов 13 минут Неужели никто поможет?.. Добавлено через 33 часа 37 минут Я так понимаю, что никто с советом не поможет? если что - вот ссылка на приложение. ОЧЕНЬ СЫРОЕ http://forstudents.xe0.ru/multyplayerchat/ чтобы не мучиться Логин 1111 Пароль 111111 |
| Часовой пояс GMT +4, время: 23:24. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.