createjs在windows触摸屏上用touch(解决部分设备无法监听move事件的bug)
记得几年前有个童鞋问我,他们给学校的window按压屏无法使用move类型的事件,我帮他解决了。当初认为这种需求是小众需求,就没有写在博客里,直到最近我也遇到了这个需求,那么今天我就把代码直接分享出来。
//windows触摸屏上用touch createjs.Touch.enable = function(stage, singleTouch, allowDefault) { if (stage.__touch) { return true; } stage.__touch = {pointers:{}, multitouch:!singleTouch, preventDefault:!allowDefault, count:0}; createjs.Touch._IOS_enable(stage); return true; }; createjs.Touch.enable(stage);
代码很少也很简单,我来讲下原理,createjs开启touch事件会判断设备,windows下是不会touch的,因为常理来说windows下用的是鼠标而不是触摸屏,但是很多教室展厅的设备是用windows的,所以还是需要在windows下使用touch。然后根据原理,我重写了这个方法,使其在任何时候都可以开启touch。这里的_IOS_enable写着是IOS,实际上安卓等移动端也可以判断。
ajex
看来这个需求还是比较大众的
匿名
你好,偶然找到这篇文章,非常有用。我也是在做给学校触摸屏使用的应用时发现了这个问题。很好奇你是如何发现能这样解决的?想学习学习前辈的思考方法。
ajex
@匿名 看懂源码
匿名
@ajex 谢谢回复!我想也是哈,后来又查了一下,搜寻的尽头也是指向源码。
因为我做的应用也是用在学校、教室大屏幕上的,跟您的叙述一样。需求大众不大众不太确定,但很确定和学校教室相关的领域的人应该都很容易遇到这个问题