Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Плиз, хелп! слои. как вывести текст на экран?
 
 автор: Kender   (08.10.2005 в 15:58)   письмо автору
 
 

есть скрипт, который обрабатывает нажатие клавиш
------
<script language="JavaScript">
var channel=0;
var maxchannel = 60;
function keyAction(e) {
switch (e.which)
{
case 52:
document.location="site/ch/?pnum=0";
break;
case 1073742149:
ASTB.SetMouseState(true);
break;
default:
AVMedia.Kill();
alert("Unknown handled key: " + e.which);
document.location="http://site/";

break;
}
}
function initial_startup(p)
{
channel = p;
ASTB.SetMouseState(false);
}
</script>
-------
всего клавиш 10, от 0 до 9 ... как в этом случае набрать 19 или 79?... и отобразить на экране то что я набираю?
типа....
case 108:
function_MyFun()
{ ..........
}
подскажите, плиз...

   
 
 автор: Duran   (10.10.2005 в 08:26)   письмо автору
 
   для: Kender   (08.10.2005 в 15:58)
 

Б-р-р-р :-).
С какого места что не получается ?
Нужно ограницить ввод только цифрами и не больше 2-х цифр ?
Цифры с клавиатуры или кнопки ?

   
 
 автор: Kender   (10.10.2005 в 17:39)   письмо автору
 
   для: Duran   (10.10.2005 в 08:26)
 

с двумя клавишами вроде разобрались ... всплыла проблема с циклом...

=============
<script language="JavaScript">
var channel=0;
var maxchannel = 20;
var cha=99;
var chb=0;
var run=1;
var t = 50
function keyAction(e)
{
if (e.which > 47)
{
if (e.which < 58)
{
if (cha == 99)
{
cha = e.which - 48;
while (run == 1)
{
t = t + 50;
if (t == 1000000)
{
chb = cha;
cha = 0;
run = 0;
document.location="/ch/?pnum=" + cha + chb;
}
}
}
else
{
run = 0;
chb = e.which - 48;
document.location="/?pnum=" + cha + chb;
}
}
}
else
======================
когда скрипт доходит до while все зависает и ждет, пока if не выполнит условий, т.е. не реагирует на повторное нажатие. Если цикл убрать, то все в порядке ...
цикл нужен для того, чтобы, в случае если нажали только на одну клавишу, через определенное время все же завершить выполнение скрипта с условием по умолчанию.

и вторая часть вопроса, как вывести на экран, допустим, номер клавиши которая нажата в данный момент, текстом или графикой ... как понимаю, если делать рисунком, то их нужно предварительно загрузить в массив...

   
 
 автор: 12345   (12.10.2005 в 03:24)   письмо автору
 
   для: Kender   (10.10.2005 в 17:39)
 

Так цикл в IE вообще-то грузит браузер так, что он ничего другого не может делать, ни параллельного процесса на JS, ни прерывания. Надо организовывать через setTimeout(,).

А что сложного в выводе номера? <body onKeypress=document.all[div1].innerText=event.keyCode; onKeyUp=document.all[div1].innerText=""> .

   
 
 автор: Kender   (12.10.2005 в 06:33)   письмо автору
 
   для: 12345   (12.10.2005 в 03:24)
 

пробовал через setTimeout(,).
варианта работы получилось два
в первом, таймаут не работал, потому как браузер ждал второго нажатия кнопки,
а во втором, жмешь ты на кнопку или нет, все равно, пока время не закончится, никто, ничего, делать не будет :))
Может я его как-то не правильно использовал?

   
 
 автор: 12345   (12.10.2005 в 14:46)   письмо автору
 
   для: Kender   (12.10.2005 в 06:33)
 

<body onKeypress=press() onKeyUp=upK() onKeyDown=if(event.repeat)event.returnValue=!1>
<pre>Сценарий:
0) реагировать только на цифры;
1) ждать по отпусканию кнопки время tOut; если не нажато 2-й раз, выводить лидирующий 0;
2) если нажата 2-я цифра, выводить вслед за 1-й;
3) подавлять автоповторы нажатий;
4) по выводу 2 цифр делать серый фон индикатора;
5) 3-е нажатие цифры считается 1-м.

Реализация:</pre>
<script>d=document;tOut=900;press1=ww=0;co='dddddd';
function press(){clearTimeout(ww);if(event.keyCode>47&&event.keyCode<58){with(d.all['div1']){
    if(press1==0){    innerText=event.keyCode-48;style.backgroundColor='';press1=1;
    }else{innerText+=event.keyCode-48;style.backgroundColor=co;press1=0;}
}}}
function upK(){k=event.keyCode;if(press1==1&&(k>47&&k<58||k>95&&k<106)){
    ww=setTimeout("with(d.all['div1']){innerText='0'+innerText;style.backgroundColor=co;}press1=0;",tOut);
}}
</script><center>
<div id=div1 style=font-size:22;width:10%;border-style:solid;border-width:1;border-color:firebrick>00</div>

   
 
 автор: Kender   (12.10.2005 в 17:47)   письмо автору
 
   для: 12345   (12.10.2005 в 14:46)
 

Спасиб!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования