Javascript cocos2djs3.0迁移
我正在从cocos2d-html5版本2.2迁移到cocos2d js 3.0,我对这段代码有一个问题(它在版本2.2中非常有效):Javascript cocos2djs3.0迁移,javascript,cocos2d-iphone,cocos2d-html5,cocos2d-js,Javascript,Cocos2d Iphone,Cocos2d Html5,Cocos2d Js,我正在从cocos2d-html5版本2.2迁移到cocos2d js 3.0,我对这段代码有一个问题(它在版本2.2中非常有效): menuButtons=cc.Menu.create(); 对于(变量a=1;a
menuButtons=cc.Menu.create();
对于(变量a=1;a<6;a++){
var label=cc.LabelTTF.create(“按钮”+a,“Arial”,20);
var tmpBtn=cc.MenuItemLabel.create(标签,函数(e){
抄送日志(“测试标签:+e.TAG”);
//开始某事物(e);
},这个);
tmpBtn.设置位置(50,a*30);
tmpBtn.tag=a;
菜单按钮.addChild(tmpBtn,2,1);
}
菜单按钮。设置位置(10,10);
this.addChild(菜单按钮,1);
按下任何“按钮”,控制台总是输出“测试标签:1”,而不是输入正确的数字。
有解决问题的技巧吗?用.title或更好的['data-']标识符更改.tag,如本例所示:
menuButtons = cc.Menu.create();
for (var a = 1; a < 6; a++){
var label = cc.LabelTTF.create("BUTTON " + a, "Arial", 20);
var tmpBtn = cc.MenuItemLabel.create(label, function (e) {
cc.log("TEST TAG: " + e['data-tag']);
//StartSomethingOther(e);
}, this);
tmpBtn.setPosition(50, a * 30);
tmpBtn['data-tag'] = a;
menuButtons.addChild(tmpBtn,2,1);
}
menuButtons.setPosition(10, 10);
this.addChild(menuButtons, 1);
menuButtons=cc.Menu.create();
对于(变量a=1;a<6;a++){
var label=cc.LabelTTF.create(“按钮”+a,“Arial”,20);
var tmpBtn=cc.MenuItemLabel.create(标签,函数(e){
抄送日志(“测试标签:+e['data-TAG']);
//开始某事物(e);
},这个);
tmpBtn.设置位置(50,a*30);
tmpBtn['data-tag']=a;
菜单按钮.addChild(tmpBtn,2,1);
}
菜单按钮。设置位置(10,10);
this.addChild(菜单按钮,1);
您正在覆盖此处的标记
属性:
menuButtons.addChild(tmpBtn,2,1);
第三个参数将tmpBtn.tag
设置为1
如果要继续使用标记
属性,只需更改:
tmpBtn.tag = a;
menuButtons.addChild(tmpBtn,2,1);
与:
如果不想使用标记
属性,请参阅的答案
tmpBtn.tag = a;
menuButtons.addChild(tmpBtn,2,1);
menuButtons.addChild(tmpBtn,2,a);