cocos2d-html5无法进行基本的ccmenu工作

时间:2012-11-23 19:21:06

标签: cocos2d-iphone cocos2d-x

很抱歉,如果这是一个新手问题,但我刚开始使用cocos2d-html,我在创建带图像的ccmenu时遇到了一些问题。这是我的代码:

var ActionLayer = cc.Layer.extend({
getTexture: function (name) {
return cc.TextureCache.getInstance()
.addImage('./images/' + name + '.png');
},
addObject: function (desc) {
var sprite = cc.Sprite.createWithTexture(this.getTexture(desc.name));

sprite.setAnchorPoint(desc.anchor || cc.p(0.5, 0.5));
        sprite.setScaleX(desc.scaleX || desc.scale || 1);
        sprite.setScaleY(desc.scaleY || desc.scale || 1);
        sprite.setRotation(desc.rotation || 0);
        sprite.setPosition(cc.p(desc.x || 0, desc.y || 0));
this.addChild(sprite, desc.z || 0);
        return sprite;
    },
    checkAnswer:function(){
        alert('yay');
    },
    init: function () {
        this._super();
        this.removeAllChildrenWithCleanup(true);
        this.setTouchEnabled(true);
var layer1 = cc.LayerColor.create(
            new cc.Color4B(00, 185, 214, 255), 1024, 768);
layer1.setPosition(new cc.Point(0.0,0.0));
        this.addChild(layer1,-2);
var director = cc.Director.getInstance(),
            self = this,
            winSize = director.getWinSize();
var bgSprite = this.addObject({
            name: "GenericBG",
            scaleY: 1,
            anchor: cc.p(0, 0),
            z: 0
});
var closeItem = cc.MenuItemImage.create('./images/sign.png','./images/sign.png',this,'checkAnswer');
closeItem.setAnchorPoint(cc.p(0.5, 0.5));
        var menu = cc.Menu.create(closeItem);
menu.setPosition(500,300);
        this.addChild(menu, 5);
    }
}); //end ActionLayer

//--------------------- Scene ---------------------

var ActionLayerScene = cc.Scene.extend({
onEnter: function () {
this._super();

var layer = new ActionLayer();
        layer.init();
this.addChild(layer);
    }
});

菜单显示在屏幕上但是当我点击菜单项时,没有任何反应 控制台上没有javascript错误,所以我真的不知道如何调试它。 谢谢 西里尔

2 个答案:

答案 0 :(得分:0)

cc.MenuItemImage.create()的参数错误。而不是:

var closeItem = cc.MenuItemImage.create('./images/sign.png','./images/sign.png',this,'checkAnswer');

它应该是:

var closeItem = cc.MenuItemImage.create('./images/sign.png','./images/sign.png','checkAnswer', this);

答案 1 :(得分:0)

for(var i=0; i<5; i++){
    var colorImg = cc.MenuItemImage.create(color_list[i], color_list[i], "colorAction", this);
    colorImg.setPosition(new cc.Point(40+i*70, 38));
    colorImg.tag = i+100; 
    this.colorImageArray.push(colorImg);
    colorMenu.addChild(colorImg);
}


colorAction:function(event)
{
    var colorTag = event.tag;
    switch(colorTag)
    {
        case 1:

                break;
        case 2:

                break;
        case 3:
                break;
    }
}