Показать сообщение отдельно
Старый 21.06.2005, 21:48
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 5  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
Nirth,посмотрел твой класс, и в который раз не пойму причем/зачем здесь диспатчер
вот ты заводишь диспатчер, который по сетинтервалу вызывает некий метод объекта (у тебя он 'onEnterFrame' назывется, видимо для красивости)
почему нельзя по-простому запустить setInteval, который точно также будет вызывать упомянутый метод
нужен updateAfterEvent() добавляем, нужны листенеры - тоже не вопрос: добавляем прямо сюда..
короче, 'скрипач не нужен' (C)кин-дза-дза ,имхо
Код:
class FPS{
	var onEnterFrame: Function;
	private var _framerate, intID : Number;
	private var listeners:Array;
	function FPS (frameRate){
		_fps = frameRate;
		listeners=[this]
	}
	function get _fps(){
		return _framerate;
	}
 	function set _fps (frameRate){
		clearInterval (intID);
		_framerate = frameRate
		intID=setInterval(this,'update',1000 / frameRate)
	}
	function stop (){
		clearInterval (intID);	
	}
	function play (){
		_fps = _framerate;	
	}
	private function update(){
		for(var i in listeners) listeners[i].onEnterFrame();
		updateAfterEvent();
	}
	function addListener(obj){
		listeners.push(obj)
	}
}