Cocos2d-x JS 3.7.1触摸事件MAC问题

时间:2015-08-20 15:39:47

标签: javascript cocos2d-iphone cocos2d-x cocos2d-js cocos2d-html5

我们现在正在开发我们的第一个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并使用它。

1 个答案:

答案 0 :(得分:0)

“无效的本机对象”错误意味着您正在使用已发布的CCNode(可能永远不会添加到场景图中而不会调用retain(),或者已从父级中删除)。

在网络版中,节点会自动保留/释放,即使节点未添加到场景图中,您仍然可以使用它;但是,在本机版本中,您必须确保节点在运行之前仍然有效。

在您的情况下,您应该在下面的代码中检查“this”节点是否有效:

this.touchListener = MouseFetcher;
this.touchListener.initial();
cc.eventManager.addListener(this.touchListener, this);