2015-09-07 39 views
0

我試圖在屏幕之間切換時實現簡單的淡入和淡出效果。我設定了一個階段,但是在設計我的應用程序時,我沒有使用任何演員。因此,我把它作爲演員放在黑屏上,然後在show()上將alpha設置爲0。淡出時我做的是我在黑色圖像褪色使用在淡出效果時更改屏幕時閃爍

stage.addAction(Actions.sequence(Actions.fadeIn(1), Actions.run(new Runnable() { 
      @Override 
      public void run() { 
       game.setScreen(new gameScreen(game)); 

這工作,但有一個小問題,就在淡出的盡頭有一毫秒小閃這說明以前的在切換之前切換屏幕以使切換不平滑,在切換屏幕之前刪除黑色圖像。我怎樣才能解決這個問題?

回答

1

您的問題是,stage.clear()stage.dispose()被你的應用程序的其他部分之前所謂的最後的時間被呈現。

該溶液是重寫處置()屏幕的方法和手動設置一些標誌shouldBeRendered爲false,然後處置您階段。

boolean shouldBeRendered = true; 

    ... 

    public void render(float delta) 
    { 
     Gdx.gl.glClearColor(0, 0, 0, 1); 
     Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); 

     if(shouldBeRendered) 
     { 
      //here you render all 
     } 

     ... 
    } 

    ... 

    @Override 
    public void dispose() 
    { 
     shouldBeRendered = false; 

     stage.clear(); 
     stage.dispose(); 
    } 

你可以添加一些的System.out.println()既渲染和處理方法看屏幕循環壽命