例如,你可以增加一种方式结束应用,通过在canvas中定义一个keyPressed事件:
protected void keyPressed( int keyCode ){ ((MyMIDlet) midlet).exit();}在所有的键盘事件中,keycode识别按键并激发事件。正值表示Unicode字符,而负值是一个键无法被直观的转换成Unicode。为了避免区分哪一个键表示哪一个,这种有不同设备确定的问题,canvas类为常用键定义了一些限制。特别是,它定义了抽象游戏行为(UP, DOWN, LEFT, RIGHT, FIRE, GAME_A, GAME_B, GAME_C, 和GAME_D)它们的键盘代码映射图可以实时定义。在它初始化过程中,设备可以调用canvas.getGameAction来确定哪种键盘映射更适合于操作。
你可以定义一个基础类,就象:
public abstract class GameCanvas extends Canvas { protected MIDlet midlet; protected int fireKey; protected int leftKey; protected int rightKey; protected int upKey; protected int downKey; public GameCanvas( MIDlet midlet ){ this.midlet = midlet; fireKey = getKeyCode( FIRE ); leftKey = getKeyCode( LEFT ); rightKey = getKeyCode( RIGHT ); upKey = getKeyCode( UP ); downKey = getKeyCode( DOWN ); }}然后,扩展它,就象: