我向我的演员添加了以下动作:
this.addAction(sequence(delay(0.5f), alpha(1, 2), delay(2), alpha(0, 2)));
是否有一种简单的方法可以暂停此动画,然后在单击按钮时继续播放?
答案 0 :(得分:2)
如果你的actor只是在运行动作,我建议你停止调用actor的act()方法。如果需要,扩展Actor以设置开关。
public void act(){
if(mUpdateAnimation){
this.act(delta)
}
}
答案 1 :(得分:0)
虽然上面的答案被接受,但是当我尝试上述解决方案时,演员的动作比以前更快。相反,当我们不希望演员执行任何动作时,我们可以做的是删除动作,稍后再添加它。
尝试直接从Actor#actions数组中删除actor中的操作,然后在另一次单击时将其添加回来。例如:
这是一个示例
final Actor actor = // ... initialize your actor;
final Action action = Actions.forever(Actions.rotateBy(360f, 3f, Interpolation.bounceOut));
actor.addAction(action);
actor.addListener(new ClickListener() {
@Override
public void clicked(InputEvent event, float x, float y) {
Array<Action> actions = actor.getActions();
if (actions.contains(action, true)) {
// removing an action with Actor#removeAction(Action) method will reset the action,
// we don't want that, so we delete it directly from the actions array
actions.removeValue(action, true);
} else {
actor.addAction(action);
}
}
});
感谢@ Arctic45采用这种方法。可在此stackoverflow link
上找到更多内容