我的代码:
actor.addAction(Actions.sequence(
Actions.fadeOut(0.3f),
Actions.run(new Runnable(){
@Override
public void run() {
Gdx.app.log(TAG,"after dispear");
}
})));
actor.remove()
我发现动作序列此时不会执行。如果我再次添加演员,它会。有人能给我一个解释吗?
答案 0 :(得分:3)
actor.addAction(Actions.sequence(
Actions.fadeOut(0.3f),
Actions.run(new Runnable(){
@Override
public void run() {
Gdx.app.log(TAG,"after dispear");
}
}),
Actions.removeActor()));
//actor.remove(); remove this line.
要删除动作链中的actor,请使用“Actions.removeActor”
答案 1 :(得分:0)
您是将actor添加到舞台,然后调用act函数吗?
更多信息或代码会有所帮助。
答案 2 :(得分:0)
我认为你的问题来自不了解LibGDX行动的概念。
如果您的目标是按顺序执行操作:
然后你必须将actor.remove()
追加到序列中。
否则,当您将代码保留为两个actor的方法时:
addAction
,remove
将陆续执行。
您编码为序列的所有操作(传递给addAction
方法)都设计为异步运行。 addAction
方法是非阻塞的,因此,在将所有序列添加到actor的逻辑之后,您将删除整个actor并且所有魔法都没有足够的时间来评估。
从显示的代码中删除最后一行,并在序列末尾添加removeActor操作。