我正在尝试在flex应用程序中添加一个虚拟删除按钮。我希望按钮绑定到键盘上的删除键。
这就是我所拥有的:
<s:Image id="btnDelete" x="0" y="0" width="32" height="32" source="image/delete.png" useHandCursor="true" click="deleteButtonClick(event)"/>
我发现删除键的键码是46,但找不到在函数中使用它的方法。我花了很多时间寻找答案。
甚至可以在flex中执行此操作,还是必须使用操作脚本?
答案 0 :(得分:2)
您需要侦听键盘事件而不是鼠标事件。你在那里做的是在图像上监听MouseEvent.CLICK事件,这不是它应该如何工作。
我的建议是你应该在舞台上听键盘事件,然后检查删除键是否被击中。
http://livedocs.adobe.com/flex/3/html/help.html?content=events_11.html
参见此示例
package {
import flash.display.Sprite;
import flash.display.DisplayObject;
import flash.events.*;
public class KeyboardEventExample extends Sprite {
private var child:Sprite = new Sprite();
private var bgColor:uint = 0x00CCFF;
private var size:uint = 80;
public function KeyboardEventExample() {
child.graphics.beginFill(bgColor);
child.graphics.drawRect(0, 0, size, size);
child.graphics.endFill();
addChild(child);
child.addEventListener(MouseEvent.CLICK, clickHandler);
child.addEventListener(KeyboardEvent.KEY_DOWN, keyDownHandler);
child.addEventListener(KeyboardEvent.KEY_UP, keyUpHandler);
}
private function clickHandler(event:MouseEvent):void {
stage.focus = child;
}
private function keyDownHandler(event:KeyboardEvent):void {
trace("keyDownHandler: " + event.keyCode);
trace("ctrlKey: " + event.ctrlKey);
trace("keyLocation: " + event.keyLocation);
trace("shiftKey: " + event.shiftKey);
trace("altKey: " + event.altKey);
}
private function keyUpHandler(event:KeyboardEvent):void {
trace("keyUpHandler: " + event.keyCode);
}
}
}