Cocos2d-html5-v3.0 alpha 2 html5中
Layout上添加子节点EditBox,Layout上的其他节点的touch响应先后都反过来了;
没添加EditBox时是正常的。
而且编辑区域 和 编辑底图位置 也不对
位置问题是FIXED_HEIGHT引起的,已经解决
cc.view.setDesignResolutionSize(960, 640, cc.ResolutionPolicy.FIXED_HEIGHT);
响应先后的问题,哪位大神能指点下
比如两个按钮,正常是层次高的按钮先响应
加了EditBox之后,变成下面的按钮先响应了
具体顺序是
Layout 上加了两 Widget 节点:Widget _1, Widget _2
Widget _2上加两个节点:btn_1, btn_2 和 EditBox
正常情况是,响应顺序是btn_2, btn_1,Widget _2, Widget _1
添加EditBox后,变成:Widget _1,Widget _2,btn_1, btn_2
可以了
先把editbox放到一个空的widget上 就不会出问题了
搞错了 好像还是不行
我刚刚尝试着插入了两个ccui.Widget,并且在第二个widget里面插入两个cc.sprite和一个cc.EditBox.
可是不管我是否插入了cc.EditBox 我这里的触发层级都是 widget2 widget1 test1 test2,无法还原出问题。
我的代码如下:
var w = ccui.Widget.extend({
ctor: function(name){
this._super();
cc.eventManager.addListener({
event: cc.EventListener.TOUCH_ONE_BY_ONE,
onTouchBegan: function (a, event) {
console.log(name);
}
}, this);
}
});
var t = cc.Sprite.extend({
ctor: function(name){
this._super(s_pathGrossini);
cc.eventManager.addListener({
event: cc.EventListener.TOUCH_ONE_BY_ONE,
onTouchBegan: function (a, event) {
console.log(name);
}
}, this);
}
});
var widget1 = new w(“widget1”);
var widget2 = new w(“widget2”);
this.addChild(widget1);
this.addChild(widget2);
var st1 = new t(“test1”);
widget2.addNode(st1);
var st2 = new t(“test2”);
widget2.addNode(st2);
this._box1 = cc.EditBox.create(cc.size(170, 50), cc.Scale9Sprite.create(“res/extensions/green_edit.png”), cc.Scale9Sprite.create(“res/extensions/orange_edit.png”));
this._box1.setText(“EditBoxs”);
this._box1.x = 220;
this._box1.y = 190;
this._box1.setFontColor(cc.color(251, 250, 0));
this._box1.setDelegate(this);
widget2.addNode(this._box1);
是否我哪里使用的场景和你不一样?如果可以的话,希望您可以贴上部分代码,以便还原出问题共同探讨。
this.addChild(widget2); 后再
this.removeChild(widget2,true); 后再this.addChild(widget2); 就乱了