2014-12-02 97 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. 当淡出图像没有改变(因为有相同的图像下方)

我知道这是不是你的情况,但这个错误我花了一些时间来找出不只是工作,发现这个小疏忽!