1

シーンを変更しようとするメニュー項目をプッシュすると、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());
}
4

1 に答える 1

0

thisとを交換するだけですthis.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); };

于 2014-07-23T20:16:04.790 に答える