Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift SKAction.runBlock按顺序运行时出现故障_Swift_Skaction - Fatal编程技术网

Swift SKAction.runBlock按顺序运行时出现故障

Swift SKAction.runBlock按顺序运行时出现故障,swift,skaction,Swift,Skaction,我有几个运行块需要按顺序运行,但发现它们即使在使用SKAction.sequence([action1,action2,action3])时仍然同时运行。任何帮助都将不胜感激 下面是我的代码示例: func SetupText() { let wait = SKAction.waitForDuration(2.0) var Label1 = SKLabelNode() Label1.fontColor = UIColor.whiteColor() Label1

我有几个运行块需要按顺序运行,但发现它们即使在使用SKAction.sequence([action1,action2,action3])时仍然同时运行。任何帮助都将不胜感激

下面是我的代码示例:

func SetupText() {

    let wait = SKAction.waitForDuration(2.0)

    var Label1 = SKLabelNode()
    Label1.fontColor = UIColor.whiteColor()
    Label1.position = CGPointMake(self.size.width / 2.3, self.size.height / 1.4)
    Label1.text = "blah1"
    self.addChild(Label1)
    scrollLabel1 = SKAction.runBlock({
        self.runSomeCode(Label1)
    })

    var Label2 = SKLabelNode()
    Label2.fontColor = UIColor.whiteColor()
    Label2.position = CGPointMake(self.size.width / 2.5, self.size.height * 0.6)
    Label2.text = "blah2"
    self.addChild(Label2)
    scrollLabel2 = SKAction.runBlock({
        self.runSomeCode(Label2)
    })

    var Label3 = SKLabelNode()
    Label3.fontColor = UIColor.whiteColor()
    Label3.position = CGPointMake(self.size.width / 2.5, self.size.height * 0.5)
    Label3.text = "blah3"
    self.addChild(Label3)
    scrollLabel3 = SKAction.runBlock({
        self.runSomeCode(Label3)
    })

    var Label4 = SKLabelNode()
    Label4.fontColor = UIColor.whiteColor()
    Label4.position = CGPointMake(self.size.width / 2.5, self.size.height * 0.4)
    Label4.text = "blah4"
    self.addChild(Label4)
    scrollLabel4 = SKAction.runBlock({
        self.runSomeCode(Label4)
    })

    var Label5 = SKLabelNode()
    Label5.fontSize = 20
    Label5.fontName = "LiquidCrystal-Regular"
    Label5.fontColor = UIColor.whiteColor()
    Label5.position = CGPointMake(self.size.width / 2.5, self.size.height * 0.3)
    Label5.text = "blah5"
    self.addChild(Label5)
    scrollLabel5 = SKAction.runBlock({
        self.runSomeCode(Label5)
    })

    var actions = Array<SKAction>()
    actions.append(wait)
    actions.append(scrollLabel1)
    actions.append(scrollLabel2)
    actions.append(scrollLabel3)
    actions.append(scrollLabel4)
    actions.append(scrollLabel5)
    let sequence = SKAction.sequence(actions)

    self.runAction(sequence)

}
func SetupText(){
let wait=SKAction.waitForDuration(2.0)
var Label1=SKLabelNode()
Label1.fontColor=UIColor.whiteColor()
Label1.position=CGPointMake(self.size.width/2.3,self.size.height/1.4)
Label1.text=“blah1”
self.addChild(标签1)
scrollLabel1=SKAction.runBlock({
self.runSomeCode(Label1)
})
var Label2=SKLabelNode()
Label2.fontColor=UIColor.whiteColor()
Label2.position=CGPointMake(self.size.width/2.5,self.size.height*0.6)
Label2.text=“blah2”
self.addChild(标签2)
scrollLabel2=SKAction.runBlock({
self.runSomeCode(Label2)
})
var Label3=SKLabelNode()
Label3.fontColor=UIColor.whiteColor()
Label3.position=CGPointMake(self.size.width/2.5,self.size.height*0.5)
Label3.text=“blah3”
self.addChild(标签3)
scrollLabel3=SKAction.runBlock({
self.runSomeCode(Label3)
})
var Label4=SKLabelNode()
Label4.fontColor=UIColor.whiteColor()
Label4.position=CGPointMake(self.size.width/2.5,self.size.height*0.4)
Label4.text=“blah4”
self.addChild(标签4)
scrollLabel4=SKAction.runBlock({
self.runSomeCode(Label4)
})
var Label5=SKLabelNode()
Label5.fontSize=20
Label5.fontName=“液晶常规”
Label5.fontColor=UIColor.whiteColor()
Label5.position=CGPointMake(self.size.width/2.5,self.size.height*0.3)
Label5.text=“blah5”
self.addChild(标签5)
scrollLabel5=SKAction.runBlock({
self.runSomeCode(Label5)
})
var actions=Array()
actions.append(等待)
actions.append(scrollLabel1)
actions.append(scrollLabel2)
actions.append(scrollLabel3)
actions.append(scrollLabel4)
actions.append(scrollLabel5)
让序列=SKAction.sequence(动作)
self.runAction(序列)
}

实际上似乎与操作无关,但与运行块有关。运行块的操作可能比序列花费更长的时间,这意味着您的序列看起来是并发的。使用常规操作而不是操作块需要解决您的问题。

实际上,似乎与操作无关,但与运行块有关。运行块的操作可能比序列花费更长的时间,这意味着您的序列看起来是并发的。使用常规动作而不是动作块需要解决您的问题。

我认为常规动作无法完成我的自定义标签动画。有没有同步运行这些块的方法?您可以对命名操作使用performSelector,并使用完成处理程序调用下一个操作。这会产生相同的结果,除非我做错了什么。我创建了一个名为scrollText()的函数来设置操作,并在选择器self.runAction(scrollLabel1,completion:{self.runAction(self.scrollLabel2)}的完成处理程序中调用后续操作,然后在我的performSelector中调用它,就像这个performSelector(self.scrollText()),withObject:self,afterDelay:2.0)我不认为常规操作将完成我的自定义标签动画。有没有同步运行这些块的方法?您可以对命名操作使用performSelector,并使用完成处理程序调用下一个操作。这会产生相同的结果,除非我做错了什么。我创建了一个名为scrollText()的函数来设置操作,并在选择器self.runAction(scrollLabel1,completion:{self.runAction(self.scrollLabel2)}的完成处理程序中调用后续操作,然后在我的performSelector中调用它,就像这个performSelector(self.scrollText()),withObject:self,afterDelay:2.0)