#actionscript-3 #mouseevent #flash-cs5 #keyboard-events
#actionscript-3 #mouseevent #flash-cs5 #клавиатура-события
Вопрос:
Хорошо, итак, я создаю презентацию слайд-шоу во Flash CS5. Код очень простой, однако он работает не так, как предполагалось. Предполагается, что переход к следующему кадру происходит, если я нажимаю кнопку или нажимаю стрелку вверх / вправо на клавиатуре. Однако клавиатура работает только после того, как я нажал кнопку один раз.
мой код:
import flash.events.MouseEvent;
import flash.events.KeyboardEvent;
slides.stop();
addEventListener(KeyboardEvent.KEY_DOWN, keyD);
FB.addEventListener(MouseEvent.CLICK, nextSld);
BB.addEventListener(MouseEvent.CLICK, prevSld);
function keyD(evt){
var k = evt.keyCode;
if(k==37||k==38){
prevSld(evt);
}
if(k==39||k==40){
nextSld(evt);
}
}
function nextSld(evt){
slides.nextFrame();
}
function prevSld(evt){
slides.prevFrame();
}
slides — это видеоролик, где я сохранил все свои слайды (О, кстати, я знаю, что мои настройки не самые лучшие, но я бы не тратил на это много времени, так как это для класса религии). FB — это кнопка переадресации, и вы можете догадаться, что такое BB…
Теперь я бы просто убедился, что моей проблемы здесь нет, и, возможно, кто-нибудь сможет указать на проблему, хотя это, вероятно, не подходит для этой платы.
Комментарии:
1. присутствует ли эта проблема в автономном flashplayer?
2. Вы уверены, что флэш-ролик имеет фокус? Он не может реагировать на события клавиатуры, если у него нет фокуса, обычно это означает щелчок по flash-фильму в браузере. Попробуйте щелкнуть в пустой области SWF-файла, а затем с помощью клавиатуры.
Ответ №1:
измените addEventListener(KeyboardEvent.KEY_DOWN, keyD);
на stage.addEventListener(KeyboardEvent.KEY_DOWN, keyD);
Комментарии:
1. Ну, это немного смущает. Я думал, что сделал это, но теперь это сработало. Спасибо.
2. кстати, есть
flash.ui.Keyboard
класс с константами keycode, очень полезный:function keyD(evt:KeyboardEvent):void{ if(evt.keyCode == Keyboard.DOWN || evt.keyCode == Keyboard.LEFT)//and so on
Ответ №2:
Кажется, ваш фильм не в фокусе, поэтому вам нужно щелкнуть мышью по фильму, прежде чем он захватит события клавиатуры.
Комментарии:
1. Ну, я попробовал это, но клавиатура не будет реагировать, если я специально не нажму одну из кнопок. Если я просто нажимаю на фильм, ничего не происходит.