2012-09-06 41 views
1

我开发了一款游戏,但这是我面临的严重问题。我没有任何线程在我的代码,但每当我使用警报在j2me显示警报后的空白屏幕

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

那么此警报后,在空白屏幕中appears.When按下屏幕,那么我的游戏画布再次出现。在设置警报之前,我的棋盘游戏画布被设置为当前显示。自动键盘锁定后也会出现此问题。

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

回答

2

这样的问题通常表明的GameCanvas方法showNotify()的丢失或不正确控制装置:

该实现调用showNotify()紧接在此之前被帆布可见在显示器上。 Canvas子类可以重写此方法以在显示之前执行任务,例如设置动画,启动定时器等。此类在Canvas类中的默认实现为空。

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

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

+0

我用repaint(),它工作,但键盘锁定后问题仍然存在。 – E1T1

+0

@Eda有趣。与键盘锁问题似乎是不同的。在'showNotify'中添加[logging](http://stackoverflow.com/a/12167957/839601“eg这里解释”),以确定它是否被调用 – gnat

+0

我添加了日志记录,并且showNotify()总是在调用之后警报到期。 – E1T1