Layout* ScrollView::getInnerContainer()
getlocation这个方法智能判断当前位置,老版本的guisystem里面有个getStartLocation()和一个getEndLocation()方法可以直接判断
但是2.2.2里面不能判断了
Layout* ScrollView::getInnerContainer()->getPosition()就可以直接获取到里面容器的位置了
typedef enum
{
SCROLLVIEW_EVENT_SCROLL_TO_TOP,
SCROLLVIEW_EVENT_SCROLL_TO_BOTTOM,
SCROLLVIEW_EVENT_SCROLL_TO_LEFT,
SCROLLVIEW_EVENT_SCROLL_TO_RIGHT,
SCROLLVIEW_EVENT_SCROLLING,
SCROLLVIEW_EVENT_BOUNCE_TOP,
SCROLLVIEW_EVENT_BOUNCE_BOTTOM,
SCROLLVIEW_EVENT_BOUNCE_LEFT,
SCROLLVIEW_EVENT_BOUNCE_RIGHT
}ScrollviewEventType;
这么多事件,有你需要的吧
这些事件类型不能判断手势的方向啊
自己计算起始点和一定时间后的移动点的角度。
有没有这方面的例子,我想参考一下,谢谢了
local function ScrollViewEvent(sender, eventType)
if eventType == ccui.ScrollviewEventType.scrollToLeft then
elseif eventType == ccui.ScrollviewEventType.scrollToRight then
end
end
scrollView:addEventListenerScrollView(ScrollViewEvent)
监听这两个事件就可以了,还是上代码比较实际
self.Scroll.on(‘scrolling’, self.onScrollingEvent, self);
self.Scroll.on(‘scroll-began’, self.onScrollBeganEvent, self);
/**
* 滑动中监听
* @param {any} event
*/
onScrollingEvent(event){
var self = this;
var offsetY = self.Scroll.getComponent(cc.ScrollView).getScrollOffset().y;
console.log("toby: onScrollingEvent = " + event + “,” + offsetY);
if (self.lastoffsetY > offsetY) {
console.log(“toby: onScrollingEvent 向下滑动”);
}
else{
console.log("toby: onScrollingEvent 向上滑动");
}
self.lastoffsetY = offsetY;
},
/**
* 滑动开始监听
* @param {any} event
*/
onScrollBeganEvent(event){
var self = this;
self.lastoffsetY = self.Scroll.getComponent(cc.ScrollView).getScrollOffset().y;
console.log("toby: onScrollBeganEvent = " + event + "," + self.lastoffsetY);
},