Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Работа с цифровой клавиатурой (http://www.flasher.ru/forum/showthread.php?t=113648)

ptornoltik 04.07.2008 18:07

Работа с цифровой клавиатурой
 
ситуация такая: пишу приложение которое работает с цифровой клавиатурой(там где Num Lock), возникла такая проблема - при нажатии на клавишу открывается определенный слайд с одной картинкой, это я разобрался! А вот если одновременно зажато две клавиши и более надо чтобы высвечивался слайд на котором две картинки и более. Как это сделать?

DimensionB 04.07.2008 18:17

У тебя проблема с тем чтобы ввобще две любые нажатые клавиши отловить или только две на цифровой клавиатуре?

ptornoltik 04.07.2008 18:37

две любые, с цифровой мне кажеться будет аналогично!

crazyone 04.07.2008 19:48

Проще всего, я думаю, будет использовать isDown (Key.isDown method) в каком-нибудь обработчике. Если нажата - показывать, если не нажата - не показывать.

ptornoltik 04.07.2008 19:52

Вариант! А если две нажатые?

crazyone 04.07.2008 19:55

Для каждой кнопки проверять, я имел ввиду.

В таком духе:
Код:

clips=new Array();
clips[61]=first_mc;
clips[52]=second_mc;
onEnterFrame=function(){
for(var i in clips){
if(Key.isDown(i)){
  clips[i]._visible=true;
}else{
clips[i]._visible=false;
}
}
}


ptornoltik 04.07.2008 20:00

а этот вариант?
Код:

var o = {};
o.onKeyDown = function(){
  if(Key.isDown(17)){
      if(Key.isDown(32)){
        trace("Вы нажали Ctrl + Spacebar");
      }
  }
}

Key.addListener(o);

что скажеш?

etc 04.07.2008 23:51

ptornoltik, отредактируйте свой пост и оформите код тегами [code][/code].

aksios 05.07.2008 00:23

Для цифровой клавы будет как то так:
Код:

var key,pushed:Number;
var ekey:String;
var keys:Array = Array();
var keyListener:Object = new Object();
for (var i = 0; i<10; i++) {
        keys[i]=0;}
keyListener.onKeyDown = function()
{
        key=Key.getCode();
        keys[key-48]=key;
        }
keyListener.onKeyUp = function()
{
        key=Key.getCode();
        keys[key-48]=0;
}
Key.addListener(keyListener);
function update():Void {
ekey=keys.join();       
if (ekey<>"0,0,0,0,0,0,0,0,0,0"){
 trace (ekey);//Тут код для всех возможных сочетаний кнопок (ну которые зарезервированы)
for (var i = 0; i<10; i++) {
keys[i]=0;}
}}
var intervalID:Number = setInterval(update, 100);

- Сложность в том, что кнопки могут нажиматься по одной и парами и даже по несколько штук, могут опускаться в любой последовательности... поентому такой кодик.

crazyone 07.07.2008 13:33

Цитата:

а этот вариант?
Код:

var o = {};
o.onKeyDown = function(){
if(Key.isDown(17)){
if(Key.isDown(32)){
trace("Вы нажали Ctrl + Spacebar");
}
}
}

Key.addListener(o);

что скажеш?
Он нормальный, но ведь не под твою задачу.

aksios, это ты так Key.isDown() пытаешься заменить? Зачем это?


Часовой пояс GMT +4, время: 04:46.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.