首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在播放GIF时使用Thread.sleep

在播放GIF时使用Thread.sleep
EN

Stack Overflow用户
提问于 2016-07-03 10:50:59
回答 1查看 128关注 0票数 0

我正在试着做一个游戏,上面有一个字幕按钮。当您单击片尾字幕按钮时,会出现一个gif并向下滚动,就像电影结尾的片尾字幕一样。GIF持续时间为10.25秒。我试图在GIF结束时绘制一些东西,但检测到这一点的唯一方法是执行Thread.sleep(10250);然后绘制它。但是,Thread.sleep暂停gif,然后在10秒后恢复gif。相关代码如下:

代码语言:javascript
复制
public void paint(Graphics g){
        Graphics2D g2 = (Graphics2D) g;
        if(onFrontPage == true){
            g2.drawImage(frontpage, 0, 0, this);
        }
        if(credits == true){
            g2.drawImage(creditsgif, 0, 0, this);
        }
        if(aftercredits == true){
            g2.drawImage(creditsimg, 0, 0, this);
        }
    }



    // Checks credits button
    if(e.getX() > 549 && e.getY() > 458 && e.getX() < 749 && e.getY() < 534){
        credits = true;
        onFrontPage = false;
        repaint();
        try {
            Thread.sleep(10250);
        } catch (InterruptedException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        credits = false;
        aftercredits = true;
        repaint();

    }

我试图在gif完成后绘制图像"creditsimg“,但线程睡眠在开始时暂停gif 10秒,然后启动gif。我如何让Thread.sleep在后台工作,这样它就不会干扰gif了?

EN

回答 1

Stack Overflow用户

发布于 2016-07-03 11:15:58

代码语言:javascript
复制
if(credits == true){
  Thread th=new Thread() {
    public void run() {
      g2.drawImage(creditsgif, 0, 0, null);
    }
  };
  th.start();
}

您可能必须将一些变量设为final,或者将它们传递到线程的构造函数中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38166312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档