runAction 之后, 无法 removeChild 是怎么一回事?

首先添加一个精灵

this.s1 = new cc.Sprite("#W1.png");
this.s1.attr({
x: sx - 23,
y: sy + 50 + sh * 0.3,
});
this.s1.setBlendFunc(cc.SRC_ALPHA, cc.ONE);
this.s1.setTag(6);
this.addChild(this.s1);

如果在这几行下面加一行
this.removeChild(this.s1);
那么就可以正常remove掉

但是 runAction 之后
this.UpActionS1 = cc.moveTo(2, this.s1.x, GC.h - 200);
this.s1.runAction(cc.Sequence.create(this.UpActionS1, cc.callFunc(this.removes, this.s1)));

无论如何也remove不掉, 请问为什么啊
removes : function (s){
cc.log(s);
this.removeChild(s);
this.removeChild(this.s1);
},

this.s1.runAction(cc.Sequence.create(this.UpActionS1, cc.callFunc(this.removes, this.s1)));
改成
this.s1.runAction(cc.Sequence.create(this.UpActionS1, cc.callFunc(this.removes, this)));

removes : function (s){
cc.log(s);
this.removeChild(s);
this.removeChild(this.s1);
},

改成
removes : function (){
this.removeChild(this.s1);
},

:14: :14: :14: :14: :14: :14:

饭饭正解~~~~~:7:

感谢回复, 但是还是没有remove成功, 然后我试了下面的代码成功了, 不知道是怎么个情况:

this.s1.runAction(cc.Sequence.create(this.UpActionS1, cc.callFunc(this.removes, this.s1)));


removes : function (s){
s.removeFromParentAndCleanup(true);
},

最好还是将这段代码,最后的this.s1改成this
this.s1.runAction(cc.Sequence.create(this.UpActionS1, cc.callFunc(this.removes, this)));

这个参数会影响到运行那个函数的上下文环境。也就是,你在removes函数里面如果按你的写法,使用了this的话,会发现this变成了s1