Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 13.01.2012, 20:55
EndoCrinologist вне форума Посмотреть профиль Отправить личное сообщение для EndoCrinologist Найти все сообщения от EndoCrinologist
  № 1  
Ответить с цитированием
EndoCrinologist
 
Аватар для EndoCrinologist

блогер
Регистрация: Feb 2011
Адрес: Россия, Тольятти
Сообщений: 301
Записей в блоге: 10
По умолчанию Почему не происходит выполнение функций?

У меня есть игра по сети с онлайн игроками, но мне нужно сделать одну маленькую вещь - свой курсор. Причем их два: первый отвечает за активность интерфейса, вторая - неактивность. То есть - если можно что-то делать в игре - мышка в виде стрелки, если что-то происходит в игре, то наоборот - песочные часы и ничего нельзя щелкать.

Я сделал небольшую последовательность функций, которые объединяют друг друга:

Код AS1/AS2:
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;
}
Примечание: obj00 - это курсор, obj01 - это песочные часы

Теперь поясню их работу.

Если мне надо заблокировать активность интерфейса:
Я просто ставлю строку
Код AS1/AS2:
lockAllElements()
в нужном месте. При этом происходит блокировка мувиков и кнопок. В этой же функции устанавливается интервал на функцию lockCursor(), отвечающую за переход от курсора к часам, здесь же происходит снятие интервала с функции, отвечающую за обратное действие.

Если мне надо разблокировать активность интерфейса:
Я просто ставлю строку
Код AS1/AS2:
unlockAllElements()
в нужном месте. При этом происходит разблокировка мувиков и кнопок. В этой же функции устанавливается интервал на функцию unlockCursor(), отвечающую за переход от часов к курсору, здесь же происходит снятие интервала с функции, отвечающую за обратное действие.


Теперь сама проблема.

В этой функции я пытаюсь подключиться к файлу, чтобы проверить, а есть ли сеть с интернетом

Код AS1/AS2:
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)!";
		}
	}
}
Дело в том, что когда проверял отдельно каждую из функций (lockAllElements и unlockAllElements), они срабатывали, но когда я их включаю в функцию connServer(), происходит несрабатывание функции unlockAllElements(). В чем может быть причина?
__________________
Надо сменить подпись...


Последний раз редактировалось EndoCrinologist; 13.01.2012 в 21:00.
Старый 13.01.2012, 21:48
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Условие if (connect == 1) выполнятется?
То есть вообще вызов unlockAllElements() происходит?
Потрейси.

Кстати, зачем у тебя lvOnLoad() вложена в connServer() ?
Не надо так.
Как следствие, не уверен, что в this.connect этот самый this ссылается на lv.
upd. Хотя наверное-таки будет работать.
__________________
Идите первым!


Последний раз редактировалось mooncar; 13.01.2012 в 21:59.
Старый 13.01.2012, 22:02
EndoCrinologist вне форума Посмотреть профиль Отправить личное сообщение для EndoCrinologist Найти все сообщения от EndoCrinologist
  № 3  
Ответить с цитированием
EndoCrinologist
 
Аватар для EndoCrinologist

блогер
Регистрация: Feb 2011
Адрес: Россия, Тольятти
Сообщений: 301
Записей в блоге: 10
Я всё протрейсил, переменная свои значения получает. Соединение происходит, но курсор и часы всё равно не работают... Может из-за интервалов всё это? Может у вас есть более актуальное решение проблемы?
__________________
Надо сменить подпись...

Старый 14.01.2012, 10:50
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 4  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Я, кстати, так и не понял, вызов unlockAllElements() происходит?
Не "срабатывание", а сам вызов?
Или проблема решена?
__________________
Идите первым!

Старый 14.01.2012, 14:11
EndoCrinologist вне форума Посмотреть профиль Отправить личное сообщение для EndoCrinologist Найти все сообщения от EndoCrinologist
  № 5  
Ответить с цитированием
EndoCrinologist
 
Аватар для EndoCrinologist

блогер
Регистрация: Feb 2011
Адрес: Россия, Тольятти
Сообщений: 301
Записей в блоге: 10
Дело в том, что они сами срабатывают. По отдельности.
Я сделал вот так: одну ставил за другой - проверил, работает. Потом наоборот - работает. Даже ставил так: unlock, lock, unlock - тоже работает. Но когда они в функции подключения - они не срабатывают
__________________
Надо сменить подпись...

Старый 15.01.2012, 13:35
dark256 вне форума Посмотреть профиль Отправить личное сообщение для dark256 Посетить домашнюю страницу dark256 Найти все сообщения от dark256
  № 6  
Ответить с цитированием
dark256
 
Аватар для dark256

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
Попробуйте при вызове функции указать абсолютный путь.
Например
Код:
_level0.unlockAllElements();
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

Создать новую тему Ответ Часовой пояс GMT +4, время: 03:56.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 03:56.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.