多点触摸(英文:Multi-touch or multitouch)是一项允许计算机用户使用多个手指对图形应用程序进行 *** 作的一项互动技术。
多点触摸包括触摸屏幕(屏幕、桌面、墙面等)或者触控板,以及可以同时识别多个触摸点的软件。它不同于标准的触摸屏只支持一个触摸点。这种效果要通过多种手段获得,包括:热、手指的压力、高帧率摄像机、红外光、光捕获、调整电磁感应、超声波接收器、麦克风传感器、激光测距仪和阴影捕获。
人们希望有更多的应用支持多点触摸。多点触摸常让人联想到苹果的iPhone和iPod Touch,其实在许多其它的产品中也有这项技术。比如苹果的MacBook和MacBook Pro笔记本产品线,微软的Microsoft Surface,华硕的EEE PC, 魅族的M8手机
现代多点触摸控制器支持单点及多点的全点触摸屏应用,比如在手机上玩游戏,使用GPS输入多个地点等。
如果还想了解大尺寸触摸屏的话就看我空间吧:>
在Flutter中我们在 Widget 实现一些手势交互通常会使用 GestureDetector 装饰器来实现,但是默认情况下, widget 是支持多点触控,但是在一些特定需求下,我们不需要多点触控的 *** 作,或者多点触控反而给一些功能带来麻烦,而且比较不方便的是,多点触控无法通过 *** 作 widget 或者 GestureDetector 来屏蔽掉。查阅了官方文档发现的这个玩意: RawGestureDetector
大概意思是:一个小部件,用于检测由给定手势工厂描述的手势。对于常用手势,请使用GestureRecognizer。 RawGestureDetector主要在开发自己的手势识别器时很有用。
例如:
我们可以通过RawGestureDetector来自定义手势。
有时,你可能需要禁用多点触摸或在Flutter应用程序中点击小部件。 例如,有一个列表,并且一次只能单击其中一项。 您不希望用户同时用三个手指点击或触摸并立即选择三个项。基本上,您要防止用户多次点击或多点触摸。
我们先创建一个简单的页面,页面加载一个 ListViewbuilder() ,
这个列表上的cell都支持多点触控,效果图:
图
Flutter允许在 GestureRecognizer 基类的帮助下创建自定义手势识别器小部件。 该类已经有两个抽象的实现,可以实现多次轻击和单次轻击手势。
首先创建一个自定义窗口小部件,以使其子窗口小部件只能具有单一触摸手势。
在 build() 方法中,我们将返回仅支持单点触摸手势的手势检测器小部件。 因此,我们为此创建另一个名为 _SingleTouchRecognizer 的类
现在我们回到我们的 SingleTouchRecognizerWidget 中,通过 RawGestureDetector 装饰器来定义我们刚才创建的单击手势检测器:
现在, build() 方法返回了一个 RawGestureDetector ,该 RawGestureDetector 处理 _SingleTouchRecognizer 类中的手势。接下来,我们需要在识别器类中实现这些方法。我们首先覆盖 GestureRecognizer 的 addAllowedPointer 方法。
在这里, startTrackingPointer 方法注册了将由识别器处理的相关事件。 然后, resolve() 负责确保是否允许继续进行触摸事件。
如果我们传入 GestureDispositionrejected ,则当前的触摸事件无法处理。 因此,此触摸事件将被传递并允许其继续。 但是,如果传递了 GestureDispositionaccepted ,则将解析触摸事件,并且不会再调用其他事件。
通过handleEvent函数重置控制变量_p的值。
这样就完成了_SingleTouchRecognizer类的实现。
现在,只需要将该 Widget 包裹在想要支持单点触控的 widget 外层即可。
参考文献:
disable-multi-touch-on-a-widget-in-flutter
apiflutterdev
多点触控是采用人机交互技术与硬件设备共同实现的技术,能在没有传统输入设备(如:鼠标、键盘等。)下进行计算机的人机交互 *** 作。
多点触控能构成一个触摸屏(屏幕,桌面,墙壁等)或触控板,都能够同时接受来自屏幕上多个点进行计算机的人机交互 *** 作。
扩展资料
多点触控LLP技术:主要运用红外激光设备把红外线投影到屏幕上。当屏幕被阻挡时,红外线便会反射,而屏幕下的摄影机则会捕捉反射去向。再经系统分析,便可作出反应。
多点触控FTIR技术:会在屏幕的夹层中加入LED光线,当用户按下屏幕时,便会使夹层的光线造成不同的反射效果,感应器接收光线变化而捕捉用户的施力点,从而作出反应。
多点触控Optical Touch技术:在屏幕顶部的两端,分别设有一个镜头,来接收用户的手势改变和触点的位置。经计算后转为坐标,再作出反应。
程序员可以把多点触摸应用到很多方面,从一定程度上改变或者创新出更多的 *** 作方式来。典型的应用是,在硬玻璃上d琴成为现实。如把手机屏幕变成琴键,另一个典型的例子是苹果手机上的PS模拟器,通过多点触摸技术,实现了同时进行方向键和其他按钮的组合输入。
参考资料来源:百度百科-多点触控
步骤如下:
1,打开Flash CS3,建立一个AS3文件,保存到 \touchlib\as3\int文件夹下,起名叫做 MTTestfla。
2, 新建一个as3文件,起名为MTTestas,同样保存到 \touchlib\as3\int文件夹下。
3,在as3文件里,输入下面的代码,建议你最好自己敲进去,不要直接复制。
4,在MTTestfla文档类里输入MTTest, 注意大小写。
5,打开Floscrar, 并点击“Start”按钮,再打开Simulatorjar。
6,回答Flash CS3界面,Ctrl+Enter,发布Flash。这时,应该会看到一个绿色的方块。
7,回到Simulator界面,就可以缩放和移动那个绿色方块了。注意位置要对应好,要不点不到方块上。
public class MTTest extends Sprite
{
private var mc:RotatableScalable=new RotatableScalable();
public function MTTest():void
{
TUIOinit(this,"localhost",3000,'',true);
init();
}
private function init():void
{
mcgraphicsbeginFill(0x99cc00);
mcgraphicsdrawRect(-50,-50,100,100);
mcgraphicsendFill();
addChild(mc);
mcx=200;
mcy=200;
}
}
}
以上就是关于多点触摸是怎么回事全部的内容,包括:多点触摸是怎么回事、手机多点触控是怎么回事、Flutter开发-屏蔽Widget的多点触控行为等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)