我们现在正在开发我们的第一个cocos2d-x JS项目,在运行MAC项目时遇到了麻烦。对于WEB,它正常工作。
我们创建了以下eventListener:
this.touchListener = MouseFetcher;
this.touchListener.initial();
cc.eventManager.addListener(this.touchListener, this);
在eventManager中有代码部分:
frameworks/cocos2d-x/cocos/scripting/js-bindings/auto/jsb_cocos2dx_auto.cpp: Line: 18190, Function: js_cocos2dx_EventDispatcher_addEventListenerWithSceneGraphPriority
Invalid Native Object
JS: /script/jsb_cocos2d.js:1643:Error: Invalid Native Object
当我们运行应用时,我们会收到以下错误:
{{1}}
有人可以帮助解决这个问题吗,我们为MAC / IOS版本做错了什么?在这种情况下应该如何初始化eventListener并使用它。
答案 0 :(得分:0)
“无效的本机对象”错误意味着您正在使用已发布的CCNode(可能永远不会添加到场景图中而不会调用retain(),或者已从父级中删除)。
在网络版中,节点会自动保留/释放,即使节点未添加到场景图中,您仍然可以使用它;但是,在本机版本中,您必须确保节点在运行之前仍然有效。
在您的情况下,您应该在下面的代码中检查“this”节点是否有效:
this.touchListener = MouseFetcher;
this.touchListener.initial();
cc.eventManager.addListener(this.touchListener, this);