【问题标题】:blank screen after showing alert in j2me在 j2me 中显示警报后的空白屏幕
【发布时间】:2012-09-07 02:00:29
【问题描述】:

我开发了一款游戏,但这是我面临的一个严重问题。我的代码中没有任何线程,但是每当我使用警报时

Display.setCurrent(my_alert)// my_alert has a timeout of 3000ms

然后在此警报之后,会出现一个空白屏幕。当按下屏幕时,我的游戏画布会重新出现。在设置警报之前,我的棋盘游戏画布设置为当前显示。自动键盘锁定后也会出现此问题。

此提醒对我的游戏至关重要,请提出解决方案。

【问题讨论】:

    标签: java-me alert midp lcdui nokia-s40


    【解决方案1】:

    此类问题通常表明 GameCanvas 方法 showNotify() 的覆盖缺失或不正确:

    在此 Canvas 在显示器上可见之前,该实现立即调用 showNotify()。 Canvas 子类可能会覆盖该方法以在显示之前执行任务,例如设置动画、启动计时器等。该方法在 Canvas 类中的默认实现是空的。

    在从警报返回到前一屏幕时调用上述方法。 GameCanvas 应该以某种方式触发屏幕重绘(例如使用repaintflushGraphics 方法),否则它将显示为空白。

    在自动键盘锁定之后也会出现此问题,这使得showNotify 更有可能在您的 MIDlet 中没有正确完成。

    【讨论】:

    • 我使用了 repaint() 并且成功了,但是在键盘锁定后问题仍然存在。
    • @Eda 很有趣。键盘锁的问题似乎有所不同。在showNotify 中添加logging 以确保它是否被调用
    • 我添加了日志记录,并且在警报到期后总是调用 showNotify()。
    • @Eda 但在键盘锁定后不调用它,或者直到用户按下一个键才调用它?
    • 只有当用户在游戏中走错时才会调用该方法。
    猜你喜欢
    • 1970-01-01
    • 2014-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-13
    相关资源
    最近更新 更多