[]按钮拖动的bug
startDrag这接口有这样一个参数说明:
* @param elasticDistance (可选)橡皮筋效果的距离值,0为无橡皮筋效果,默认为0,可选。
但事实上,不管是不是显式写上默认值0,就都拖不了了。研究发现,这根本就是能拖动的最大距离。
另外MOUSE_UP这个事件,是要求鼠标在抬起的时候,在控件的响应范围内的是吧。但问题是,没考虑拖动时,控件的位置也跟着变了啊。我拖远之后,抬起鼠标,就不响应MOUSE_UP了,其实此时鼠标就是在控件范围内的。目前我把事件挂Laya.stage上,已解决。
另外像DRAG_START这种事件得用户自己调startDrag这样的接口才能触发,新手谁知道啊!都用户自己调了,还要事件干什么?感觉这整套设计乱糟糟的啊,个人建议可以对每个事件设计个特定的数据类,处理该事件所有的输入和输出数据。这样用on启动DRAG_START就直接拖了,而且自定义事件也可以有自定义的数据类,整个理念就统一了。
虽然多个数据类就多了份信息,但现在startDrag之类的不都是多出来的信息!可以以数组传参只是语言自带的功能,太偷懒了!
* @param elasticDistance (可选)橡皮筋效果的距离值,0为无橡皮筋效果,默认为0,可选。
但事实上,不管是不是显式写上默认值0,就都拖不了了。研究发现,这根本就是能拖动的最大距离。
另外MOUSE_UP这个事件,是要求鼠标在抬起的时候,在控件的响应范围内的是吧。但问题是,没考虑拖动时,控件的位置也跟着变了啊。我拖远之后,抬起鼠标,就不响应MOUSE_UP了,其实此时鼠标就是在控件范围内的。目前我把事件挂Laya.stage上,已解决。
另外像DRAG_START这种事件得用户自己调startDrag这样的接口才能触发,新手谁知道啊!都用户自己调了,还要事件干什么?感觉这整套设计乱糟糟的啊,个人建议可以对每个事件设计个特定的数据类,处理该事件所有的输入和输出数据。这样用on启动DRAG_START就直接拖了,而且自定义事件也可以有自定义的数据类,整个理念就统一了。
虽然多个数据类就多了份信息,但现在startDrag之类的不都是多出来的信息!可以以数组传参只是语言自带的功能,太偷懒了!
没有找到相关结果
已邀请:
要回复问题请先登录
2 个回复
Aar0n
赞同来自:
一花一世界
赞同来自:
顺便说个我对拖动接口的使用情况,首先我要的可拖动区域有好几个,startDrag不支持,但懒得自己写缓动,于是把范围写成了0。拖到地头后,即使调stopDrag,还是会弹回来。看起来也不会有啥中止的办法。
最后我是这么做的,在stopDrag之前又调了次startDrag,并在参数里把范围设的极大,总算搞定。代码有点二逼,但还算能用。
不是要问啥问题,只是给其他人看看。