var action = SKAction.sequence([
SKAction.waitForDuration(1),
SKAction.runBlock({
//Some code
})
])
我希望上述操作在某些条件成立时继续重复。我怎么能这样做?
我知道我可以使用runAction(action)
执行一次操作,或使用runAction(SKAction.repeatActionForever(action))
永久重复操作。虽然某些情况属实,我怎么才重复呢?
如果使用动作无法做到这一点,那么在某些条件成立时我是否可以选择重复这些步骤(显然,在单独的线程上,我不希望这会冻结我的应用程序):
1)等一下
2)执行代码块
3)检查条件是否为真。如果它停止重复。否则,重复一遍。
我对使用sleep()
犹豫不决,因为这听起来像是一个糟糕的解决方案,而苹果公司不允许在他们的商店中使用应用程序。
答案 0 :(得分:5)
使用Swift的替代解决方案:
runAction(
SKAction.repeatActionForever (
SKAction.sequence([
SKAction.waitForDuration(1),
SKAction.runBlock({
//Code you want to execute
if conditionIsTrue {
self.removeActionForKey("New Thread")
}
})
])
),
withKey: "New Thread"
)
答案 1 :(得分:2)
您可以使用SKAction的
您可能想要创建一个块。在内部只检查变量,然后相应地应用你的逻辑,一旦条件不再为真,你可以从对象中删除它。
如果要在声明前修改变量add __ block 。
this.getServices = function (pageSize, ServiceCategoryId) {
return $http({
method: "post",
url: "/Home/Services_PageSize?pageSize=" + pageSize + "& ServiceCategoryId=" + ServiceCategoryId
});
很容易就像我的男孩苹果派一样