У меня есть 2 видеоклипа. У одного есть персонаж, идущий, а другой он бежит. Как сделать так, чтобы, если я нажму на клавишу со стрелкой влево, он будет воспроизводить ходячий клип. Если я быстро нажимаю стрелку влево, он переключится на рабочий клип. Я использую ActionScript 3.Actionscript 3 обнаружение последовательного нажатия клавиши
ответ
Для этого требуется немного кода, так как Flash AS3 не имеет встроенной поддержки двойных щелчков. Вот простой пример того, как вы можете добиться этого эффекта с помощью SetTimeout
var keyCodeToListenFor = '13'; // can be any keycode;
var keySinglePress:Boolean = false;
var keyDoublePress:Boolean = false;
var timeToWaitForDoublePress:Number = 400;
var waitingForDoublePress:Boolean = false;
stage.addEventListener(KeyboardEvent.KEY_DOWN, handleKeyDown);
function handleKeyDown(e:Event) {
if (e.keyCode == keyCodeToListenFor) {
keySinglePress = true;
if (waitingForDoublePress) {
keyDoublePress = true;
}
waitingForDoublePress = true;
setTimeout(function() {
waitingForDoublePress = false;
keyDoublePress = false;
}, timeToWaitForDoublePress);
}
if (keyDoublePress) {
trace('You logged a double press!')
} else if (keySinglePress) {
trace('You logged a single press!');
}
}
Я думаю, что функция, вызываемая через 'setTimeout()', должна проверить, была ли запущена двойная печать, и если да, то она должна вернуться. Предположим, что вы хотите, чтобы ваш игрок заработал долго, дважды нажмите D (для запуска справа), он запускается, затем включается таймер BAM, и символ перестает работать и начинает ходить. – Vesper
Да, отличная точка. Вышеприведенный пример следует использовать в лучшем случае как свободное руководство. –
Что вы уже пробовали? – Kodiak
Не будет ли ключ к определенному периоду времени, чтобы пробиться в весну лучше? – adaam