修改UIListViewTest如下,第一次点击back刷新listview,里面的button不可触摸,再次刷新后就可以了,这是为什么呢?
****************************************************************************/
var LISTVIEW_RES =
“res/cocosui/UIEditorTest/UIListView_Editor/UIListView_Vertical_Editor/ui_listview_editor_1.json”,
“res/cocosui/UIEditorTest/UIListView_Editor/UIListView_Horizontal_Editor/ui_listview_horizontal_editor_1.json”
];
var LISTVIEW_INDEX = 0;
var UIListViewEditorTest = UIBaseLayer.extend({
root:null,
ctor: function () {
this._super();
this.root = ccs.uiReader.widgetFromJsonFile(LISTVIEW_RES);
this._mainNode.addChild(this.root);
var back_label = ccui.helper.seekWidgetByName(this.root, "back");
back_label.addTouchEventListener(this.updatelist, this);
var listView = ccui.helper.seekWidgetByName(this.root, "ListView_1214");
listView.addEventListener(this.selectedItemEvent,this);
var left_button = ccui.Button.create();
left_button.loadTextures("res/Images/b1.png", "res/Images/b2.png", "");
left_button.x = 240-50;
left_button.y = 50;
left_button.anchorX = 0.5;
left_button.anchorY = 0.5;
left_button.zOrder = 999;
left_button.addTouchEventListener(this.previousCallback, this);
this._mainNode.addChild(left_button);
var right_button = ccui.Button.create();
right_button.loadTextures("res/Images/f1.png", "res/Images/f2.png", "");
right_button.x = 240+50;
right_button.y = 50;
right_button.zOrder = 999;
right_button.anchorX = 0.5;
right_button.anchorY = 0.5;
right_button.addTouchEventListener(this.nextCallback, this);
this._mainNode.addChild(right_button);
},
selectedItemEvent: function (sender, type) {
switch (type) {
case ccui.ListView.EVENT_SELECTED_ITEM:
var listViewEx = sender;
cc.log("select child index = " + listViewEx.getCurSelectedIndex());
break;
default:
break;
}
},
previousCallback: function (render, type) {
if (type == ccui.Widget.TOUCH_ENDED) {
LISTVIEW_INDEX--;
if (LISTVIEW_INDEX < 0)LISTVIEW_INDEX = LISTVIEW_RES.length-1;
if (LISTVIEW_INDEX >= LISTVIEW_RES.length)LISTVIEW_INDEX = 0;
this.runNextScene();
}
},
nextCallback: function (render, type) {
if (type == ccui.Widget.TOUCH_ENDED) {
LISTVIEW_INDEX++;
if (LISTVIEW_INDEX < 0)LISTVIEW_INDEX = LISTVIEW_RES.length-1;
if (LISTVIEW_INDEX >= LISTVIEW_RES.length)LISTVIEW_INDEX = 0;
this.runNextScene();
}
},
runNextScene: function () {
var scene = cc.Scene.create();
scene.addChild(new UIListViewEditorTest());
cc.director.runScene(scene);
},
updatelist:function () {
var listView = ccui.helper.seekWidgetByName(this.root, "ListView_1214");
listView.removeAllChildren()
var right_button = ccui.Button.create();
right_button.loadTextures("res/Images/f1.png", "res/Images/f2.png", "");
for (var i = 0; i < 3; i++) {
listView.pushBackCustomItem(right_button.clone())
};
}
});
