Форум 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=141602)

Avrilka 29.06.2010 22:16

При зажатии комбинации к примеру Контрол +"Ы"
 
я тут подумал что удобно в моей игре добавить пару горячих команд. Помогите пожалуйста мне нужен код который бы при зажатии контрол +Ы делал к примеру это trace ('!'). И еще мне бы хотелось бы чтобы не только контрол + Ы а контрол + А. или что то вроде этого. Я не ламер. совсем на пальцах объяснять не надо. :quiet: Я слышал что для каждой клавиши есть свой код. Было бы неплохо его узнать :rolleyes:

dimarik 29.06.2010 22:51

Если Вы не ламер, то наверняка слышали, что у большинства ЯП есть документация. Раздел справки. Считается, что коды клавиш можно узнать оттуда.

Franches 29.06.2010 23:04

http://api.farmanager.com/ru/winapi/...lkeycodes.html

xaknik 30.06.2010 07:06

Вот
Код AS1/AS2:

Key.getCode()

в которой записываются те самые коды клавиш. А сами коды посмотрите ссылкой выше.

Avrilka 30.06.2010 15:13

Кому надо вот написал код. Всем кто помогал спасибо

Код AS1/AS2:

var first_l:Number;
var secon_l:Number;
var keyListener:Object = new Object();
 
keyListener.onKeyDown = function() {
        if (Key.getCode() == 17) {
        first_l = Key.getCode()
    }
        if (Key.getCode() == 65) {
                secon_l = Key.getCode()
                }
                trace (Key.getCode())
}
keyListener.onKeyUp = function() {
        if ((first_l == 17) && (secon_l == 65)) {
                trace ('CNTR + A')
        }
        first_l =0
        secon_l =0
}
Key.addListener(keyListener);

правда тут есть минус ... надо сначала нажать контрол. потом отпусть его потом нажать а и потом его отпустить. а есть код при одновременном зажатии?

samana 30.06.2010 15:49

Попробуй так, например ctrl+s
Код AS1/AS2:

Key.addListener(_root)
_root.onKeyDown = function() {
        if (Key.isDown(17) && Key.isDown(83)) {
                trace("Нажаты: ctrl+s");
        }
};

p.s. Для кнопки "а", почему-то не срабатывает.

FlashWizard 30.06.2010 16:22

Нужно ещё заблокировать горячие клавишы самого Flash-плеера.
Код AS1/AS2:

fscommand('trapallkeys', true);


samana 30.06.2010 19:43

Цитата:

Сообщение от FlashWizard (Сообщение 918976)
Нужно ещё заблокировать горячие клавишы самого Flash-плеера.
Код AS1/AS2:

fscommand('trapallkeys', true);


!!! Кстати да, верно. Теперь всё работает правильно с любой клавишой!! Только ролик (swf) нужно сохранить и запустить уже не с среде флеша.

Avrilka 30.06.2010 23:20

а вот ваш код у меня вообще не работает

Код AS1/AS2:

Key.addListener(_root)
_root.onKeyDown = function() {
        if (Key.isDown(17) && Key.isDown(83)) {
                trace("Нажаты: ctrl+s");
        }
};


mooncar 30.06.2010 23:30

Цитата:

Сообщение от Avrilka (Сообщение 919094)
а вот ваш код у меня вообще не работает

Нормальный рабочий код.
Флешку проверяете отдельно запущенной, не в программе.
Для проверки нажатия используйте не трейс, а какое-нибудь действие, например, задание текста динамическому полю:
Код AS1/AS2:

Key.addListener(this)
this.onKeyDown = function()
{
        if (Key.isDown(17) && Key.isDown(83)) {
                test_tf.text = "Нажаты: ctrl+s";
        }
};



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

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