画面一闪而过的问题

I_am_a_java_CaiNiao 2007-11-19 09:10:30
大家好,我做了个精灵类的简单测试,就是把一幅图片分割,但启动后,模拟器一闪而过,请问这是怎么回事,谢谢。
代码:

package sprite;

import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Displayable;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;

public class SpriteTest extends MIDlet implements
CommandListener
{
private Command cmdExit;
private SpriteCanvas sc;

public SpriteTest()
{
sc = new SpriteCanvas();
cmdExit = new Command("Exit", Command.EXIT, 1);
sc.addCommand(cmdExit);
sc.setCommandListener(this);
}

protected void destroyApp(boolean arg0)
throws MIDletStateChangeException
{
}

protected void pauseApp()
{
}

protected void startApp()
throws MIDletStateChangeException
{
Display.getDisplay(this).setCurrent(sc);
}

public void commandAction(Command cmd, Displayable da)
{
if (cmd == cmdExit)
{
try
{
destroyApp(false);
} catch (Exception e)
{}
notifyDestroyed();
}
}
}


package sprite;

import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.GameCanvas;
import javax.microedition.lcdui.game.Sprite;

public class SpriteCanvas extends GameCanvas implements
Runnable
{
private int width;
private int height;
private int startX;
private int startY;
private Sprite sprite;
private Image spriteImage;
private Graphics g;
private static final int[] frameOrder = { 0, 1, 2 };

protected SpriteCanvas()
{
super(true);
width = getWidth();
height = getHeight();
startX = 0;
startY = 0;
try
{
spriteImage = Image.createImage("/T.png");
} catch (Exception e)
{
}
g = getGraphics();
sprite = new Sprite(spriteImage, 32, 48);
sprite.setFrameSequence(frameOrder);
new Thread(this).start();
}

public void run()
{
while (true)
{
g.setColor(0x000000);
g.fillRect(0, 0, width, height);
sprite.nextFrame();
if (startY + 5 < height)
{
startY += 5;
sprite.setPosition(startX, startY);
} else
{
startY = 0;
sprite.setPosition(startX, startY);
}

sprite.paint(g);
flushGraphics();
}
}
}



...全文
82 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
吐泡泡的鱼 2008-10-08
  • 打赏
  • 举报
回复
模拟器一闪而过,是自己关了吗?
那有可能是配置的问题吧,代码没有问题。

13,096

社区成员

发帖
与我相关
我的任务
社区描述
Java J2ME
社区管理员
  • J2ME社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧