【问题标题】:object is not a function in menuitem对象不是 menuitem 中的函数
【发布时间】:2014-04-13 23:58:56
【问题描述】:

当我推送一个尝试更改场景的菜单项时,我从 Chrome 控制台收到此错误消息:

Uncaught TypeError: object is not a function CCMenuItem.js:174
cc.MenuItem.cc.Node.extend.activate CCMenuItem.js:174
cc.MenuItemLabel.cc.MenuItem.extend.activate CCMenuItem.js:333
(anonymous function) CCClass.js:138
cc.Menu.cc.Layer.extend.onTouchEnded CCMenu.js:442
cc.TouchDispatcher.cc.Class.extend.touches CCTouchDispatcher.js:376
cc.TouchDispatcher.cc.Class.extend.touchesEnded CCTouchDispatcher.js:508
cc.ProcessMouseupEvent CCTouchDispatcher.js:630
(anonymous function)

这是我的菜单代码:

var menuItem1 = new cc.MenuItemFont.create("Play",this,this.onPlay);
var size = cc.Director.getInstance().getWinSize();
menuItem1.setPosition(new cc.Point(size.width/2,size.height/2+50));

var menu = cc.Menu.create(menuItem1);

menu.setPosition(new cc.Point(0,0));

this.addChild(menu);

还有menuitem1的功能:

onPlay:function(){
    //cc.log("==onplay clicked");
    //var director = cc.Director.getInstance();
    //director.replaceScene(new MainLayer());
}

【问题讨论】:

  • 这是 cocos2d-js 吧?如果是这样,请不要使用 cocos2d-iphone 标签,因为这是一个不同的引擎。
  • Cocos2d-html 和 -js 标签几乎没有关注者
  • 那是因为它们不太受欢迎。您可能不会从更流行但不相关的标签的用户那里获得帮助。如果 SO 以这种方式工作,我们都会用“编程”标记大多数问题。 ;)

标签: javascript html cocos2d-html5 cocos2d-js


【解决方案1】:

你只需要交换thisthis.onPlay

var menuItem1 = new cc.MenuItemFont.create("Play",this.onPlay,this);

Create 函数如下所示:

cc.MenuItemFont.create = function (value, callback, target) { return new cc.MenuItemFont(value, callback, target); };

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-06
    • 1970-01-01
    • 2014-01-31
    • 1970-01-01
    • 2015-08-11
    • 2015-10-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多