Swift - 如何在同一函数

时间:2015-05-15 20:33:18

标签: swift skaction sknode

我有一个功能,我需要一个接一个地运行2个动作。 e.g。

func foo()
{
     ..........
     if someConditions
     {
          node1.runAction1
          node2.runAction2
     }
}

似乎swift正在同时运行这些动作 而这正是我不希望在游戏中发生的事情 我希望action1在action1完成后启动。
我该怎么做?
非常感谢。

1 个答案:

答案 0 :(得分:1)

您可以在调用node1.runAction时传递完成处理程序,当node2的操作完成时,该处理程序将启动node1的操作。例如:

node1.runAction(action1) {
    node2.runAction(action2)
}

修改

在回复您的评论时,这是一个可能的解决方案:定义runAction1就像这样(我假设runAction1是您某个类的方法)。

func runAction1(completion: () -> Void) {
    // ...
    self.runAction(action, completion: completion)
}

然后像这样使用:

node1.runAction1(completion: node2.runAction2)

希望有所帮助。