removeFromParent函数执行报错

我在敌人类的死亡事件中,添加了如下语句,为了在一秒之后删除自己并创建新的敌人

    
                        _this = this;        
                        setTimeout(function(){
//                if(_this )
//                    _this .removeFromParent();
                GAME.enermy = new Enermy();//将新的敌人存入全局变量中
            },1000);
```


但是这里注释的部分一运行就报
jsb: ERROR: File ..\auto\jsb_cocos2dx_auto.cpp: Line: 4261, Function: js_cocos2dx_Node_getParent
js_cocos2dx_Node_getParent : Invalid Native Object
JS: src/Enermy.js:66:Error: js_cocos2dx_Node_getParent : Invalid Native Object

为什么这里的removeFromParent就是不能运行呢?

1.跟踪一下你的_this 指向的是不是你想移除的对象
2.为什么要1秒后删除自己再创建新的 ? 直接删除不行? 你的敌人如果是同一个类创建的就可以考虑复用 而不用去创建新的 !
个人认为是你的_this对象不对了 已经被回收了

谢谢!我明白了 因为 GAME.enermy = new Enermy();之后没有变量指向原来的敌人了,应该是被回收了,
我马上改成你说的复用的方法!

但是仔细一想我之前是有mainLayer.addChild(GAME.enermy),这样还会导致变量回收吗?
而且_this确实是指向一个对象,新的对象是不会调用死亡事件的。。。。

PS:隔一秒删除是因为有死亡动画。。。。

但是仔细一想我之前是有mainLayer.addChild(GAME.enermy),这样还会导致变量回收吗?----只要你调用了removeChild就会被回收
而且_this确实是指向一个对象,新的对象是不会调用死亡事件的。。。。 ------_this对象还是Enermy类的对象吗?
我没用过setTimeOut这个函数,我一直用的是ScheduleOnce()这个函数