你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
输入关键字进行搜索
搜索:
没有找到相关结果
pishone
赞同来自: Glimmer 、ankisme 、Reckton 、misakacirno
SunHowe
赞同来自: pishone 、ankisme 、misakacirno
StopPropagation 点击子节点的区域,父节点也能收到触摸事件,这就是事件冒泡的特性。如果你不想再向父节点传递,可以调用这个方法。
oyg
赞同来自:
要回复问题请先登录或注册
3 个回复
pishone
赞同来自: Glimmer 、ankisme 、Reckton 、misakacirno
首先是问题产生的原因:FGUI存在事件的冒泡传递机制,当组件内的某个小组件触发了事件 该事件会向父级传递
例如 大按钮嵌套的小按钮被点击时 大按钮的点击事件也被触发(PS:点击时 除了触发onClick事件 还会触发 onTouchBegin等事件 这些都会冒泡传递下去)
问题的解决方式是 : 在小按钮事件中屏蔽冒泡传递 例如:
Gbutton.onClick.Set((eventContext) => { eventContext.StopPropagation() })
同时如果希望屏蔽掉FGUI自带的按钮动画效果 需要在增加一个:
Gbutton.onTouchBegin.Set((eventContext) => { eventContext.StopPropagation() })
因为按钮按下的效果 例如缩放 其实是由 onTouchBegin 这个事件控制切换的
SunHowe
赞同来自: pishone 、ankisme 、misakacirno
https://www.fairygui.com/docs/unity/event#eventcontext
你可以在小按钮的onClick、onTouchBegin等事件中,调用eventContext.StopPropagation(),这样它就不会传给大按钮了
oyg
赞同来自: