需求:
PageView设置为左右翻页,每页里有一个多个ScrowView,ScrowView内容设置为上下滑动。当在ScrowView内左右滑动时,可触发PageView左右翻页。类似于皇室冲突:
当前的情况是,左右滑动ScrowView时,ScrowView自身上下滑动,但并没能触发PageView左右翻页。请教如何设置可实现左右滑动ScrowView时触发PageView左右翻页?
需求:
PageView设置为左右翻页,每页里有一个多个ScrowView,ScrowView内容设置为上下滑动。当在ScrowView内左右滑动时,可触发PageView左右翻页。类似于皇室冲突:
当前的情况是,左右滑动ScrowView时,ScrowView自身上下滑动,但并没能触发PageView左右翻页。请教如何设置可实现左右滑动ScrowView时触发PageView左右翻页?
我也遇到了跟你同样的问题,关注中……
我的PageView设置为左右翻页(全屏的),而其中的每个pageview的页面又都有一个上下滚动的ScrollView。然后运行时,只能够上下滚动scrollview,却无法左右滑动pageview翻页。
本人使用的是cocos creator 1.3.3。
我现在用的是1.4.0的版本
自己顶一下,有解决过的给个思路。。。。
不爱上论坛 我解决了的
我是禁止掉 pageview滚动 用按钮来控制的
按钮控制的时候激活 滚动 然后又禁止
这个有必要吗?去掉这个操作会有什么问题???
这种做法没法达到皇室冲突的左右翻页效果
另外如果是按钮,应该不需要对页面进行禁止和激活操作呢
这个问题问的人也不少,目前是在 ScrollView 组件脚本里专门对嵌套时的拖拽进行了处理,你可以重写下面这个方法,来允许子节点约束框上的滑动时间传递到父节点:
https://github.com/cocos-creator/engine/blob/v1.4/cocos2d/core/components/CCScrollView.js#L880-L908
后续我们会研究如何更好的支持这种嵌套需求。
用的按钮 切换页面 左右滑动一开始就禁止的 不激活 按钮是不能滑动的
用的按钮 切换页面 左右滑动一开始就禁止的 不激活 按钮是不能滑动的 所以才要这样
你好,我也遇到这个问题来,请问怎么重写这个事件呢?
如何实现啊!
那个游戏叫皇室战争。。。。
其实这个你自己实现在拖动事件就很容易搞定了
这个改写了,没用
将 scrollview 和 pageView 的 js 代码弄出来,自己封装成另外两个组件。再到这两个组件里面改。
可以实现。
主要原因就是scrollview的事件吞掉pageview的事件导致pageview监听不到事件,按照我给的附件,放入scrollview的view节点,。然后自己的scrollview拖到脚本中就可以了,具体逻辑可以看看代码,主要思路就是在scrollview监听到这些事件之前拦截后自己分发,根据需求,看是要分发给scrollview还是pageview。
comp_scroll_recognition.js.zip (1.6 KB)
谢谢,不过已经用这个简单的方法实现了:
cc.Class({
extends: cc.PageView,
//this is for nested scrollview
_hasNestedViewGroup: function (event, captureListeners) {
if(event.eventPhase !== cc.Event.CAPTURING_PHASE) return;
var touch = event.touch;
if(!touch) return;
var deltaMove = cc.pSub(touch.getLocation(), touch.getStartLocation());
if (deltaMove.x > 7 || deltaMove.x < -7)
return false;
// if (deltaMove.y > 7 || deltaMove.y < -7)
// return false;
if(captureListeners) {
//captureListeners are arranged from child to parent
for(var i = 0; i < captureListeners.length; ++i){
var item = captureListeners[i];
if(this.node === item) {
if(event.target.getComponent(cc.ViewGroup)) {
return true;
}
return false;
}
if(item.getComponent(cc.ViewGroup)) {
return true;
}
}
}
return false;
},
});
刚需啊。元老