2.在GestureBinding和中处理得到的指针数据
经过了几层看不懂的调用,指针数据走到了这个地方,并且以队列
的形式被处理。(这里又有window,又有lock,暂时不管)。
注意到,这里的packet是ui.PointerDataPacket
类型,该类内部仅有一个final List<PointerData>
的data成员。
既然是队列
,那么就是循环出列,逐个处理事件。这个过程由_flushPointerEventQueue
完成。
handlePointerEvent
方法,如其名,这里传过来的数据已经成为了PointerEvent
类型。(resanlingEnabled
默认为false,官方文档的解释是通过这只这个选项,对于设备的指针采样率
和屏幕刷新率
有某种关系的,可以让指针更丝滑)
3.在GestureBinding和RendererBinding中进行hitTest
_handlePointerEventImmediately
方法被handlePointerEvent
(上面那个家伙)调用。 这个方法是个重量级的家伙。
void _handlePointerEventImmediately(PointerEvent event) {
HitTestResult? hitTestResult;
if (event is PointerDownEvent || event is PointerSignalEvent ||