Я пытаюсь сделать это, нажав кнопку, используя клавишу «A» на клавиатуре. Я создал два кадра для этой кнопки, но код не работает, хотя ошибки нет.Нажатие кнопки с использованием клавиатуры в AS3
Нужно ли мне что-то вкладывать в мой основной класс? Может ли кто-нибудь помочь исправить это?
package {
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.display.Sprite;
import flash.display.Stage;
import flash.events.Event;
import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
public class controlButton extends MovieClip {
public function controlButton() {
// constructor code
this.addEventListener(KeyboardEvent.KEY_DOWN,clickDown);
this.addEventListener(KeyboardEvent.KEY_UP,clickUp);
}
public function clickDown(event:KeyboardEvent):void{
// if the key is A
if(event.charCode == 65){
this.gotoAndStop(2);
}
}
public function clickUp(event:KeyboardEvent):void{
// if the key is A
if(event.charCode == 65){
this.gotoAndStop(1);
}
}
public function changelabel(newLabel:String):void{
this.label.text = newLabel;
}
}
}
Как в стороне, вам следует избегать использования фактических кодов символов, так же, как вы могли бы избежать добавления прослушивателя событий для «щелчка». Вместо этого используйте константы класса «Клавиатура». Хотя маловероятно, что коды будут когда-либо изменяться, это делает его будущим доказательством. (поэтому вместо 'event.charCode == 65' использовать' event.charCode == Keyboard.A') –