2015-04-18 3 views
1

Я хочу, чтобы дочерний узел исчез, когда родитель приостановлен.Возможно ли запустить действие над дочерним элементом, когда родитель приостановлен

var plats: SKNode = SKNode(); 
var bigBox: SKSpriteNode!; 

override func didMoveToView(view: SKView) { 

    // Set anchor point 
    self.anchorPoint = CGPointMake(0.5, 0.5); 

    bigBox = SKSpriteNode(color: UIColor.redColor(), size: CGSizeMake(100, 100)); 
    bigBox.zPosition = 1; 

    plats.addChild(bigBox); 

    var smallBox: SKSpriteNode = SKSpriteNode(color: UIColor.greenColor(), size: CGSizeMake(50, 50)); 
    smallBox.zPosition = 2; 
    bigBox.addChild(smallBox); 

    self.addChild(plats); 
} 

// Пауза в PLATS при обнаружении прикосновения и попытаться выполнить действие на ребенка

override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) { 

    // Here I pause the parent 
    plats.paused = true; 

    // Get the child node 
    let smallBox: SKSpriteNode = bigBox.children[0] as! SKSpriteNode; 

    println(smallBox); 
    smallBox.paused = false; 
    println(smallBox.paused); // return false but the action is never trigger 

    // This part is never run, if I set plats.paused = false it will work but I dont that 
    let scaleUp = SKAction.scaleTo(0.4, duration: 0.1); 
    smallBox.runAction(scaleUp, completion: { 
     self.bigBox.removeAllActions(); 
     self.bigBox.removeFromParent(); 
     println("done"); 
    }); 

} 

Вот весь код, вы можете вставить и попытаться увидеть, что работа

доцент

Xcode версия: 6.3 быстры веры: 1,2

ответ

0

После приостановки узла узел и все его потомки приостанавливаются. Другими словами, вы не можете приостановить родительский узел, и один из его детей продолжит работу.

Смежные вопросы