Показать сообщение отдельно
Старый 06.05.2007, 04:29
Chas вне форума Посмотреть профиль Отправить личное сообщение для Chas Посетить домашнюю страницу Chas Найти все сообщения от Chas
  № 1  
Ответить с цитированием
Chas
 
Аватар для Chas

Регистрация: Sep 2002
Адрес: simferopol
Сообщений: 981
Отправить сообщение для Chas с помощью ICQ
По умолчанию onInterval и область видимости

что хочу сделать:
класс передает и загружает xml через пхп-коннектор. пошли глюки, когда ответ на первый запрос еще не вернулся а пришел ответ на второй запрос и событие произходит преждевременно (запросы посылаются хаотически в ответ на события).
решил поставить запросы в очередь, так чтобы если ответ на предыдущий запрос не вернулся, следующий из очереди не выполнялся.
код такой(много поскипано):
Код:
class game.Transmitter {
	var connectorPath:String; //путь к коннектору
	var orders:Array; //массив приказов к передаче
	var isTransmit:Boolean; //флаг определяющий, идет посылка в настоящий момент или нет
передача или нет
	var loader:game.Parser;
	function Transmitter (path){ //конструктор получает путь к коннектору
                      ...
		setInterval (this.onInterval,100);
		isTransmit=false;
		orders=new Array();
                      ...
	}
           ...
	function onInterval (){ //событие, произходящее по таймеру
		_root.debug ("on interval. isTransmit:"+isTransmit);
		if (!isTransmit && orders.length>0) {
			isTransmit=true;
			var xml=orders.pop();
			xml.sendAndLoad(connectorPath,loader);
		}
	}
}
а в трейсе вижу, что isTransmit - undefined, т.е.,по всей видимости, обалсть видимости вызова функции setInterval вышла из-под о.в. класса.
а как делают в таких случаях?
__________________
~
Never trouble trouble till trouble troubles you!