想做一个pageView,从官方test入手,复制了一份,然后,因为官方实例里添加了一个事件监听器,用于每次滑动后获得当前显示的page的index,但是,在web上运行没问题,能获取到当前page的index,但是,在win32和android下,这个事件监听不会触发,不是获取不到index,而是事件根本没有触发,下面上代码
var HelloWorldLayer = cc.Layer.extend({
sprite:null,
helloLabel: null,
ctor:function () {
this._super();
var size = cc.winSize;
this.helloLabel = new cc.LabelTTF("0", "Arial", 38);
this.helloLabel.x = size.width / 2;
this.helloLabel.y = size.height / 2 + 200;
this.addChild(this.helloLabel, 5);
//
//
this.sprite = new cc.Sprite(res.HelloWorld_png);
this.sprite.attr({
x: size.width / 2,
y: size.height / 2
});
this.addChild(this.sprite, 0);
var pageView = new ccui.PageView();
pageView.setTouchEnabled(true);
pageView.setContentSize(500, 800);
pageView.x = size.width / 2;
pageView.y = size.height / 2;
for (var i = 0; i < 3; ++i) {
var layout = new ccui.Layout();
layout.setContentSize(500, 800);
var layoutRect = layout.getContentSize();
var imageView = new ccui.ImageView();
imageView.setTouchEnabled(true);
imageView.setScale9Enabled(true);
imageView.loadTexture("res/scrollviewbg.png");
imageView.setContentSize(500, 800);
imageView.x = layoutRect.width / 2;
imageView.y = layoutRect.height / 2;
layout.addChild(imageView);
var text = new ccui.Text();
text.string = "page" + (i + 1);
text.font = "30px 'Marker Felt'";
text.fontSize = 50;
text.color = cc.color(192, 192, 192);
text.x = layoutRect.width / 2;
text.y = layoutRect.height / 2;
layout.addChild(text);
pageView.addPage(layout);
}
pageView.addEventListener(this.pageViewEvent,this);//**_就是这个事件监听器,在web上没问题,在win32和安卓下不能触发_**
pageView.setAnchorPoint(0.5,0.5);
this.addChild(pageView);
cc.log("aaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
return true;
},
pageViewEvent: function (sender, type) {
cc.log("ccccccccccccc");
switch (type) {
case ccui.PageView.EVENT_TURNING:
var pageView = sender;
this.helloLabel.setString("page = " + (pageView.getCurPageIndex().valueOf() + 1));
break;
default:
break;
}
}
});
希望大神或官方人员解答一下,感激不尽