4 电子纸人机交互实现
在电子纸人机交互的实现中,充分利用S1D13521的特性,对各种操作及时产生动态视觉反馈,可达到直观、易用的人机交互效果。
4.1 简单动态反馈的实现
动态反馈的实现依赖于显示器快速刷屏响应,而S1D13521的一个重要特性就是可以加速块刷。相对于传统800 ms的块刷时间,S1D13521可以把黑白两级块刷时间降为300 ms。充分利用这一特性,可实现多种简单动态反馈效果。
实现的一般过程是,首先计算每一帧显示屏变化区域大小,然后调用快速块刷函数GrFastPartialPrint完成对变化区域的显示刷新,这样就能以3帧/s的速率实现动态效果。这一技术的关键是计算合适的块刷区域,从而保证有效的刷屏速度。
津科V30型阅读器人机交互的翻转、退出、撤销3种操作就是使用这一技术实现的。这里以退出操作的卷帘效果为例说明。退出操作是从阅读状态返回书架,当用户从屏幕上方下向下划动,书架随之以卷帘效果展开。图4展示了书架的卷帘效果及显示刷新过程。其中,框出区域为每帧块刷区域。
4.2 即时响应动态交互的实现
为了增强人机交互的易用性和趣味性,需要进一步设计即时响应的动态反馈效果。这就要求,在使用快速块刷技术的基础上,综合运用几种针对电子纸的实现技巧。
4.2.1 效果展示
津科V30型阅读器人机交互的翻页、跳页操作就是即时响应的动态交互。这里以翻页操作为例。图5展示了翻页操作,以三角形简单模拟翻起的页角,同时在翻起的区域显示下一页部分内容,翻起页角随用户触摸移动而变化,视觉即时响应触觉。
4.2.2 实现技术
(1)即时响应的实现技术
用户触摸移动会触发MouseMove事件。即时响应要求对触发事件作及时处理,而电子纸块刷时间是300 ms,其刷新速率无法跟上事件触发速度,所以即时响应实现的一个很重要策略是舍弃一部分MouseMove事件。每次在OnMouseMove事件处理函数中,刷屏后调用DropMou-seEvent函数,从而在本次处理之后舍弃一小部分触发事件。DropMouseEvent函数实现如下:
因为舍弃事件的速度大于用户触发事件的速度,所以舍弃一些MouseMove事件后队列变空,之后会再次响应用户动作。