Показать сообщение отдельно
Старый 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.