![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
У меня есть игра по сети с онлайн игроками, но мне нужно сделать одну маленькую вещь - свой курсор. Причем их два: первый отвечает за активность интерфейса, вторая - неактивность. То есть - если можно что-то делать в игре - мышка в виде стрелки, если что-то происходит в игре, то наоборот - песочные часы и ничего нельзя щелкать.
Я сделал небольшую последовательность функций, которые объединяют друг друга: function lockAllElements(){ intLockCursor = setInterval(lockCursor,1); for (i=1; i<=100; i++){ eval("obj"+i).enabled = 0; eval("but"+i).enabled = 0; } } function unlockAllElements(){ intUnlockCursor = setInterval(unlockCursor,1); for (i=1; i<=100; i++){ eval("obj"+i).enabled = 1; eval("but"+i).enabled = 1; } } function lockCursor(){ clearInterval(intUnlockCursor); Mouse.hide(); obj01._x = _xmouse; obj01._y = _ymouse; obj00._visible = 0; } function unlockCursor(){ clearInterval(intLockCursor); Mouse.hide(); obj00._x = _xmouse; obj00._y = _ymouse; obj01._visible = 0; } Теперь поясню их работу. Если мне надо заблокировать активность интерфейса: Я просто ставлю строку в нужном месте. При этом происходит блокировка мувиков и кнопок. В этой же функции устанавливается интервал на функцию lockCursor(), отвечающую за переход от курсора к часам, здесь же происходит снятие интервала с функции, отвечающую за обратное действие. Если мне надо разблокировать активность интерфейса: Я просто ставлю строку в нужном месте. При этом происходит разблокировка мувиков и кнопок. В этой же функции устанавливается интервал на функцию unlockCursor(), отвечающую за переход от часов к курсору, здесь же происходит снятие интервала с функции, отвечающую за обратное действие. Теперь сама проблема. В этой функции я пытаюсь подключиться к файлу, чтобы проверить, а есть ли сеть с интернетом function connServer(){ server = "http://xxx.ru" obj0.info.text = "Выполняю подключение к сети..."; _urls = server + "connect.txt"; // файл, который просто нужно проверить var lv:LoadVars = new LoadVars(); lv.onLoad = lvOnLoad; lv.load(_urls); function lvOnLoad (suc:Boolean) { if(suc){ //если загрузка данных была успешна connect = this.connect; if (connect == 1){ unlockAllElements(); _root.ser = server; // устанавливаю данный путь актуальным } else { obj0.info.text = "Подключение не удалось (1)!"; } } else { obj0.info.text = "Подключение не удалось (1)!"; } } }
__________________
Надо сменить подпись... Последний раз редактировалось EndoCrinologist; 13.01.2012 в 21:00. |
|
|||||
|
Модрон-ветеринар
|
Условие if (connect == 1) выполнятется?
То есть вообще вызов unlockAllElements() происходит? Потрейси. Кстати, зачем у тебя lvOnLoad() вложена в connServer() ? Не надо так. Как следствие, не уверен, что в this.connect этот самый this ссылается на lv. upd. Хотя наверное-таки будет работать.
__________________
Идите первым! Последний раз редактировалось mooncar; 13.01.2012 в 21:59. |
|
|||||
|
Я всё протрейсил, переменная свои значения получает. Соединение происходит, но курсор и часы всё равно не работают... Может из-за интервалов всё это? Может у вас есть более актуальное решение проблемы?
__________________
Надо сменить подпись... |
|
|||||
|
Модрон-ветеринар
|
Я, кстати, так и не понял, вызов unlockAllElements() происходит?
Не "срабатывание", а сам вызов? Или проблема решена?
__________________
Идите первым! |
|
|||||
|
Дело в том, что они сами срабатывают. По отдельности.
Я сделал вот так: одну ставил за другой - проверил, работает. Потом наоборот - работает. Даже ставил так: unlock, lock, unlock - тоже работает. Но когда они в функции подключения - они не срабатывают
__________________
Надо сменить подпись... |
|
|||||
|
|
![]() |
![]() |
Часовой пояс GMT +4, время: 03:56. |
|
|
« Предыдущая тема | Следующая тема » |
|
|