quick cocos2dx 2.2.5Plus中无解的问题

quick cocos2dx 2.2.5Plus中无解的问题,第1张

概述quick cocos2dx中使用cocostudio布局,然后再使用了其中的UIScrollView,在UIScrollView中又有按钮的话,杯具就会发生了。 现象: 当uiScrollView中的Item超过可视范围以后,被裁剪掉的部分的button是可以被点击的,而且绑定按钮的接口 obj:addTouchEventListener(function(_sender, _event)

quick cocos2dx中使用cocostudio布局,然后再使用了其中的UIScrollVIEw,在UIScrollVIEw中又有按钮的话,杯具就会发生了。

现象:

当uiScrollVIEw中的Item超过可视范围以后,被裁剪掉的部分的button是可以被点击的,而且绑定按钮的接口

obj:addtouchEventListener(function(_sender,_event)        if _event == touch_EVENT_ENDED then            print("touched close")            end        return false    end)

这个接口中无法取到ptouch的任何信息,所在无论如何也不能对这个控件进行判定是否在scrollvIEw外面

从quick的touch体系来看,这个item肯定是scrollvIEw的child,因此touch首先会被它响应,

Widget的touch好像是当某个obj响应以后,就中断了,不再继续往传给父结点。

因此这个问题用ccs的控件本身是无法判定的,另外,对于ccs而已的控件,要判定是否在父控件也是比较麻烦的。

因此添加的时候的位置取出来永远都是那个位置。

如:将item1添加在0,100位置,则取出来永远都是这个位置,无论它滚到了哪里.


若原来的CSS布局不变,只换ui.ListVIEw来进行替换,则可以判断按钮是否在ListVIEw外面,但是问题是这个ListVIEw的层次必须在原来的ccs

布局的最顶层,若不是最后添加这个控件,则它又会被其他的控件盖住,这个时候无论是否对Widget控件设置吞噬触摸。都不管用。

settouchSwallowEnabled(false)

触摸依然被上导的ccs控件吞噬。

若将ListVIEw放在最顶层,则原来的ccs层的touch事件又会被它给盖住(设计分辨率下尚可), 一旦分辨率变了,原来的触摸区域却不会变化,

最终结果就是要么ccs遮住ListVIEw,要么ListVIEw遮住ccs,不能和谐的共存,因此在设计的时候最好把顶层和最下面的滑动超出屏幕,暂时没有别的办法。

不晓得3.X有没有解决这个问题。

总结

以上是内存溢出为你收集整理的quick cocos2dx 2.2.5Plus中无解的问题全部内容,希望文章能够帮你解决quick cocos2dx 2.2.5Plus中无解的问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1032404.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存