Форум 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)
-   -   Как сделать отклик на нажатие Shift + (=) (http://www.flasher.ru/forum/showthread.php?t=199844)

GuitarFan 25.05.2013 20:24

Как сделать отклик на нажатие Shift + (=)
 
Я делаю калькулятор и мне нужно поставить на кнопки (Shift) + (=) действие.
(Shift) + (=) это есть тоже самое, что и поставить знак + в блокноте.
Но я не знаю, что писать в KeyPress, чтобы сработало по нажатии (Shift) + (=)

Zebestov 25.05.2013 21:03

А почему вариант наподобие этого не годится?

Код AS1/AS2:

on(keyPress "+") {
    trace("+");
}
on(keyPress "=") {
    trace("=");
}


alex_195 25.05.2013 21:12

Код AS1/AS2:

someListener = new Object();
someListener.onKeyDown = function() {
        if (Key.isDown(Key.SHIFT) && Key.isDown(187)) {
                trace('действие');
        }
};
Key.addListener(someListener);


Hauts 25.05.2013 22:59

Лучше на onKeyUp слушать. Точнее, не лучше, а проще будет.

GuitarFan 30.05.2013 02:02

Код AS1/AS2:

on(release, keyPress"<Enter>")
{
        trace(111);
}

По нажатию энтер ничего не происходит почему-то.

NikolyA 30.05.2013 03:23

Цитата:

Сообщение от GuitarFan (Сообщение 1135516)
Код AS1/AS2:

on(release, keyPress"<Enter>")
{
        trace(111);
}

По нажатию энтер ничего не происходит почему-то.

а ничего не произойдет, надо так:

Код AS1/AS2:

var keyListener:Object = new Object(); 
keyListener.onKeyUp = function() {
    if (Key.getCode() == Key.ENTER) {
        trace("111");
    }
};
Key.addListener(keyListener);


GuitarFan 30.05.2013 03:33

Что значит ничего не произойдет? С другими кнопками все нормально работает, а вот энтер не работает.
Ваш код я использоваться не хочу так как он больше и я его не понимаю. KeyPress с другими кнопками работает. Что тут не так?

dark256 30.05.2013 11:35

Цитата:

Сообщение от GuitarFan (Сообщение 1135522)
Ваш код я использоваться не хочу так как он больше и я его не понимаю.

Великолепная мотивация.

Не так у вас явно синтаксис сигнатуры кнопки.

GuitarFan 30.05.2013 12:41

Да я флешем не собираюсь заниматься, по крайней мере сейчас.
Просто задали написать калькулятор, осталось только этот энтер найти.
Я гуглил KeyPress, нашло такие же записи как и у меня.
Как правильно его писать?

NikolyA 30.05.2013 12:45

Цитата:

Сообщение от GuitarFan (Сообщение 1135522)
Что значит ничего не произойдет? С другими кнопками все нормально работает, а вот энтер не работает.
Ваш код я использоваться не хочу так как он больше и я его не понимаю. KeyPress с другими кнопками работает. Что тут не так?


дык, я могу тоже самое сказать что ракеты на Байконур взлетают, а у меня во дворе нет


для Enter я написал как нужно сделать, другое дело будешь ли ты его использовать или нет, судя по всему ты хочешь решить проблему как можно проще в виде 3-х строк кода, но для начала загляни в руководство по AS2

GuitarFan 30.05.2013 13:04

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

NikolyA 30.05.2013 13:09

наверное потому что код навешан в самой кнопке + и -, и эти кнопки визуально существуют в вашем калькуляторе, а кнопки - мувика Enter судя по всему нет

dark256 30.05.2013 13:21

Погуглите хэлп вот для такой конструкции.

Код AS1/AS2:

onClipEvent (keyDown) {
 if (Key.getCode() == Key.RIGHT) {
 this._parent.nextFrame();
 } else if (Key.getCode() == Key.LEFT) {
 this._parent.prevFrame();
 }
}


mooncar 30.05.2013 13:41

На всякий случай.
Если что, проверять работу клавиатурных событий нужно не во Flash IDE, а запуская ролик отдельно во избежания перехватывания горячих клавиш самой программой (или отключить хоткеи при тестировании в настройках программы).

GuitarFan 30.05.2013 13:42

Цитата:

наверное потому что код навешан в самой кнопке + и -, и эти кнопки визуально существуют в вашем калькуляторе, а кнопки - мувика Enter судя по всему нет
То есть вы говорите, что KeyPress срабатывает только если есть кнопка Enter? Ведь кнопки у меня все одинаковые, я просто на них кликаю, жму F9 и пишу код. То есть этот код привязан к кнопкам. И к кнопке равно на калькуляторе у меня привязан Ентер. Если будет время, вот мой проект:
http://ge.tt/7a0z22i/v/0?c
Кода тут по минимуму. Код на кнопках и в первом ключе.

NikolyA 30.05.2013 14:30

я конечно понимаю что Flash CS6 это круто и модно сейчас, но в наличии такого не имею, максимум Flash CS 5.5 и да, я кнопку Enter не вижу в калькуляторе этом

GuitarFan 30.05.2013 15:18

Что значит кнопка Enter? Кнопки все одинаковые, а на них просто текст написан.
keyPress же не привязывается к тексту на кнопке, я не понимаю почему вы постоянно говорите, что там нет кнопки с надписью Enter.
on(release, keyPress"<Enter>") {trace(111);}
Если я правильно понимаю, эта функция должна сработать либо при release (нажатии на кнопку) либо при нажатии кнопки, которая указана после keyPress. Для keyPress не нужна никакая кнопка Enter в моем калькуляторе, на сколько я понимаю. Он отслеживает нажатия клавиатуры.


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

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