关于 SKAction fadeout 并 removeFromParent 后显示的node 得不到响应问题

来源:互联网 发布:腾讯云主机绑定域名 编辑:程序博客网 时间:2024/06/05 07:34

问题出现情况:父node(以下称nodeRoot)维护一个NSArray,存放若干SKNode,用于分层(以下称layer),往nodeRoot添加子node时都添加到其指定layer上。现在layerA上添加了nodeA,在对nodeA执行以下逻辑

SKAction *dismissAction = [SKAction fadeOutWithDuration:0.1];    SKAction *moveAway = [SKAction removeFromParent];    [nodeA runAction:[SKAction sequence:@[dismissAction, moveAway]] withKey:@"dismiss"];

后,即移除nodeA后,余下的node得不到响应。


解决方法:

在dismissAction 和 moveAway 之间将nodeA移出可见范围:

SKAction *dismissAction = [SKAction fadeOutWithDuration:0.1];    SKAction *moveDown = [SKAction moveByX:0 y:-self.size.height duration:0.1]; /*需要先移走再移除,否则移除后node得不到响应*/    SKAction *moveAway = [SKAction removeFromParent];    [nodeA runAction:[SKAction sequence:@[dismissAction, moveDown, moveAway]] withKey:@"dismiss"];


具体原因有待研究。。。

0 0