[]按钮拖动的bug

startDrag这接口有这样一个参数说明:
* @param elasticDistance (可选)橡皮筋效果的距离值,0为无橡皮筋效果,默认为0,可选。

但事实上,不管是不是显式写上默认值0,就都拖不了了。研究发现,这根本就是能拖动的最大距离。

另外MOUSE_UP这个事件,是要求鼠标在抬起的时候,在控件的响应范围内的是吧。但问题是,没考虑拖动时,控件的位置也跟着变了啊。我拖远之后,抬起鼠标,就不响应MOUSE_UP了,其实此时鼠标就是在控件范围内的。目前我把事件挂Laya.stage上,已解决。

另外像DRAG_START这种事件得用户自己调startDrag这样的接口才能触发,新手谁知道啊!都用户自己调了,还要事件干什么?感觉这整套设计乱糟糟的啊,个人建议可以对每个事件设计个特定的数据类,处理该事件所有的输入和输出数据。这样用on启动DRAG_START就直接拖了,而且自定义事件也可以有自定义的数据类,整个理念就统一了。
虽然多个数据类就多了份信息,但现在startDrag之类的不都是多出来的信息!可以以数组传参只是语言自带的功能,太偷懒了!
已邀请:

Aar0n

赞同来自:

laya的设计首先都是考虑性能,而不是易用性。

一花一世界

赞同来自:

哦,也就是还是很穷的一种状态喽!反正性能和易用性的价值关系,看看虚幻和u3d就知道了。希望将来能有余力关注下易用性吧。
 
顺便说个我对拖动接口的使用情况,首先我要的可拖动区域有好几个,startDrag不支持,但懒得自己写缓动,于是把范围写成了0。拖到地头后,即使调stopDrag,还是会弹回来。看起来也不会有啥中止的办法。
 
最后我是这么做的,在stopDrag之前又调了次startDrag,并在参数里把范围设的极大,总算搞定。代码有点二逼,但还算能用。
 
不是要问啥问题,只是给其他人看看。

要回复问题请先

商务合作
商务合作