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

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
по ходу получается, что onKeyUp генерится когда все клавиши отпущены, т.е. отследить с его помощбю последовательное отжатие не судьба..
как вариант: заставить мувик следить за нажатием/отжатием, ну и сообщать об изменениях:
Код:
import mx.events.EventDispatcher;
//сщздаем мувик, который будет следить за клавишами RIGHT, LEFT & SPACE
this.createEmptyMovieClip('keyDispatcher',this.getNextHighestDepth());
keyDispatcher.keys={r:false,l:false,s:false};//для контроля
EventDispatcher.initialize(keyDispatcher);//копируем в него методы диспатчера

keyDispatcher.onEnterFrame=function(){
	var k=this.keys;
	//если состояние клавиши меняется, то рапортуем (вещаем событие 'key')
	if(k.r!=Key.isDown(Key.RIGHT)){ 
		this.dispatchEvent({type:'key',what:k.r ? 'up' : 'down',key:'right',time:getTimer()});
	}
	if(k.l!=Key.isDown(Key.LEFT)){ 
		this.dispatchEvent({type:'key',what:k.l ?  'up' : 'down',key:'left',time:getTimer()});
	}
	if(k.s!=Key.isDown(Key.SPACE)){ 
		this.dispatchEvent({type:'key',what:k.s ? 'up' : 'down',key:'space',time:getTimer()});
	}
	this.keys={r:Key.isDown(Key.RIGHT),l:Key.isDown(Key.LEFT),s:Key.isDown(Key.SPACE)};
}
//подписываем функцию onKey, на прослушку события 'key'
keyDispatcher.addEventListener('key',onKey);
//теперь всегда знаем когда, какую и что сделали(нажали/отпустили)...
function onKey(e){
	trace('________');
	trace('when :'+e.time);
	trace('key :'+e.key+' ('+e.what+')');
	
}