2014-12-02 90 views
0

我有一個堆滿了表格。我想淡入,淡出,的moveTo,幾個這些演員,但的addAction方法不起作用:fadeIn,fadeOut和moveTo動作對演員不起作用

stack_stage = new Stack();  
    table_menu = new Table(); 
    level_selector = new ex01MenuLevelSelectorBase(skin, table_menu);  

    table_menu.add(level_selector).center(); 
    table_menu.setFillParent(true); 

    stack_stage.setFillParent(true); 
    stack_stage.add(table_menu); 
    stage.addActor(stack_stage); 

    table_level_selector = new Table(); 
    image_level_selector = new Image(skin.getDrawable("hud-level5")); 
    image_level_selector.setColor(1f, 1f, 1f, 0.5f); 
    table_level_selector.add(image_level_selector);  

    stack_stage.addActor(table_level_selector); 

    //doesn't work 
    table_level_selector.addAction(com.badlogic.gdx.scenes.scene2d.actions.Actions.fadeOut(5f)); 

    //works 
    table_level_selector.addAction(com.badlogic.gdx.scenes.scene2d.actions.Actions.hide()); 

回答

2

試試這個

table_level_selector.addAction(Actions.sequence(Actions.fadeOut(5f),Actions.hide())); 

table_level_selector.addAction(Actions.sequence(
           com.badlogic.gdx.scenes.scene2d.actions.Actions.fadeOut(5f), 
           com.badlogic.gdx.scenes.scene2d.actions.Actions.hide())); 

可能這是你的錯誤,在渲染方法中試試這個

stage.act(Gdx.graphics.getDeltaTime()); 
+0

爲什麼我應該在隱藏時嘗試淡出(0f)?無論如何,我用fadeout(5f)嘗試了這個序列,它只是等待5秒鐘而不改變alpha,然後這個actor就像通過簡單地調用hide()一樣消失。 – gogonapel 2014-12-02 10:30:36

+0

是的,但我把fadeOut(0f)分別放在一個序列中,對於混淆抱歉。我的觀點是,fadeIn,fadeOut,moveTo等不適用於添加到舞臺之前或之後的動作。 – gogonapel 2014-12-02 10:41:36

+0

@gogonapel序列不平行,並行是另一種類型,然而,我測試我的代碼作品 – 2014-12-02 10:45:43

0

我知道這是一個有點晚了,但今天我遇到了同樣的問題,並和意識到自己不是在渲染方法添加

Gdx.gl.glClearColor(0, 0, 0, 0); 
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); 

。這引起了我的形象繪製在自身:

  1. 當褪了不到我的預期(因爲阿爾法是在加入)

  2. 當淡出圖像沒有改變(因爲有相同的圖像下方)

我知道這是不是你的情況,但這個錯誤我花了一些時間來找出不只是工作,發現這個小疏忽!