Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.05.2015, 16:06
Новичок на форуме
Отправить личное сообщение для KNeaDeD Посмотреть профиль Найти все сообщения от KNeaDeD
 
Регистрация: 08.04.2015
Сообщений: 7

onkeydown onkeyup проверка на нажатие
Всем здравствуйте!
Сначала пояснение на русском, ниже выложу сам код.

Написал я скрипт, логика в крации такова: при нажатии в поле документа document.onkeydown= вызвать функцию pressdown. При отпускании клавиши document.onkeyup= вызвать функцию pressup. Все работает локально.

Проблема в следующем - При подключении через teamviewer к компьютеру, где лежит этот html документ, - html документ игнорирует onkeyup !!! Т.е. teamviewer не отсылает команду onkeyup! Как можно в связи с этим изменить код? Или какой софт посоветуете для удаленного вызова onkeyup?

А вот и код:
<script language = 'javascript'>
var nazhatie=0;
setTimeout(repeat,100);

function govorit(){
PlayVisemes('2,88,19,32,19,25,5,70,20,31,2,91,15,7 7,1,94,5,342,2,88,19,32,19,25,5,70,20,31,2,91,15,7 7,1,94,5,342,2,88,19,32,19,25,5,70,20,31,2,91,15,7 7,1,94,5,342,2,88,19,32,19,25,5,70,20,31,2,91,15,7 7,1,94,5,342');
SetEmotion('joy');
govorilka = setTimeout(govorit,1500);
};

function repeat(){
if(nazhatie==500){
govorit();
zatknis();
} else setTimeout(repeat,100)
};

function zatknis(){
if(nazhatie==0){
clearTimeout(govorilka);
PlayVisemes('0,50');
repeat();
}
else setTimeout(zatknis,100);
};

function pressdown(){
nazhatie=500};

function pressup(){
nazhatie=0};

document.onkeydown=pressdown;
document.onkeyup=pressup;
</script>
Ответить с цитированием
  #2 (permalink)  
Старый 12.05.2015, 16:48
Новичок на форуме
Отправить личное сообщение для KNeaDeD Посмотреть профиль Найти все сообщения от KNeaDeD
 
Регистрация: 08.04.2015
Сообщений: 7

Мне получается нужно убрать: document.onkeyup=pressup; это сто пудово, а что взамен?

Пробовал изменить pressdown:
function pressdown(){
nazhatie=500;
setTimeout(pressup,200)};

Но тогда он при зажатии клавиши запускает дофигищще pressup и каждая через 200 мсек, т.е. ваще фигня получается.
А что если вместо setTimeout(pressup,200)
заменить на otmena = setTimeout(pressup,200)

т.е. есть конкретная переменная "otmena", которая не запускается 100500 тыщ раз, а которая заменяет сама себя до тех пор, пока зажата клавиша.
Правильно ли я понимаю? Или же - что еще можете предложить?
Ответить с цитированием
  #3 (permalink)  
Старый 12.05.2015, 18:56
Новичок на форуме
Отправить личное сообщение для KNeaDeD Посмотреть профиль Найти все сообщения от KNeaDeD
 
Регистрация: 08.04.2015
Сообщений: 7

Блин, от вас пока дождешься ответа...
Тот вопрос уже решил путем, указанный ниже. Теперь у меня другой вопрос. Как сократить то время, пока компьютер поймет, что клавиша не просто нажата, а ЗАЖАТА?
Я реализовал так - при зажатии любой клавиши действует onkeydown, происходит действие. НО! Пока компьютер поймет, что клавиша зажата, проходит еще какое-то время (0,5 сек). Как это время сократить?

Для тех, кто в будущем зайдет на этот сайт, вот конечный результат:

var nazhatie=0;
setTimeout(repeat,100);
otmena = setTimeout(pressup,100);

function govorit(){
PlayVisemes('2,88,19,32,19,25,5,70,20,31,2,91,15,7 7,1,94,5,342,2,88,19,32,19,25,5,70,20,31,2,91,15,7 7,1,94,5,342,2,88,19,32,19,25,5,70,20,31,2,91,15,7 7,1,94,5,342,2,88,19,32,19,25,5,70,20,31,2,91,15,7 7,1,94,5,342');
SetEmotion('joy');
govorilka = setTimeout(govorit,1500);
};

function repeat(){
if(nazhatie==500){
govorit();
zatknis();
} else setTimeout(repeat,100)
};

function zatknis(){
if(nazhatie==0){
clearTimeout(govorilka);
PlayVisemes('0,50');
repeat();
}
else setTimeout(zatknis,100);
};

function pressdown(){
nazhatie=500;
clearTimeout(otmena);
otmena = setTimeout(pressup,100);};

function pressup(){
nazhatie=0};

document.onkeydown=pressdown;
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одновременное нажатие клавиш SeMiTr Events/DOM/Window 0 06.12.2013 17:57
проверка формы не работает в ie begelme Javascript под браузер 6 13.08.2013 01:00
после Alt+Tab не обрабатываются onkeyup и onkeydown pikko Общие вопросы Javascript 6 19.12.2012 05:53
Запуск выполнения PHP при нажатие на кнопку??? Abibas220 Общие вопросы Javascript 1 05.01.2011 12:05
onkeydown постоянное нажатие клавиши Jekel Javascript под браузер 4 16.12.2009 18:23