Flex 实现鼠标手势 无码 );
来源:互联网 发布:电子钢琴软件下载 编辑:程序博客网 时间:2024/06/11 09:17
声明:自己想的、写的东西,转载请注明出处; 不要向我要代码; FROM CSDN ID: wander000
目的:在做小程序时,显示一些重要的数据如帐号密码等,不想让别人直接看到,在指定组件上按规定好的轨迹晃动鼠标才显示。
问题:一、直接打开数据库不就看到明码了?二、怎么判断鼠标轨迹的形状?
解决:一、数据库存取时用上加解密。二、不判断轨迹的形状,判断经过的方向。
不管三七二十一,先把经过该组件的鼠标路径记录下来再说:
TrackArr.push( { "x" : e.localX, "y" : e.localY } );
//TrackArr记录鼠标移动的轨迹
其它事项:1、鼠标移出该组件,TrackArr清空。
2、鼠标一段时间不动表示动作结束,开始计算。
3、解锁后不应再响应事件,但在N秒内没有操作数据将再次加锁。
这几项问题不在这儿细讲了。
那现在有了轨迹数据,怎么判断是否按规定的轨迹晃动了呢?
先看下图:
假设以中心红点为第一点,第二点落在A的区域内,这两点的线段就认为是向上。
那又是怎么判断第二点在哪个区域呢?加减乘除白~
第二点的x <= 第一点的x : A D C 区 否则 : A B C 区
第二点的y <= 第一点的y : A D B 区 否则 : D B C 区
第二点的x - 第一点的x 的绝对值 / 第二点的y - 第一点的y 的绝对值 <=1 : A C 区 否则 : D B 区
好吧,你需要判断被除数是否为0(如果是0怎么办?考考你y2-y1=0……哪两区会出现这情况 ^.^) ,经过三重判断过滤后,只有一个区域会剩下,如:
x1=10 y1=10
x2=15 y2=20
第一重判断x2>x1,ABC区
第二重判断y2>y1,DBC区
第三重判断|15-10|/|20-10|<1,AC区
结果当然就是C区喽。
具体代码自己试试吧!
就这样第一点和第二点判断,第二点和第三点判断,以此类推……
第一次判断是A区,tmpArr.push( "A" );
第二次判断还是A,再看tmpArr最后一个值是不是A。如果是,忽略;如果不是,tmpArr.push( "{当前区}" );
……省略至最后一次判断……
最后 tmpArr.toString() == AnswerArr.toString()
//AnswerArr记录解锁码的,如AnswerArr = new array("A","D","C","B"); 表示解锁轨迹是上左下右。
相等就是和规定的解锁轨迹一样,验证通过,显示正常数据。
这样,貌似完成了,测试也成功了。不过给别人测试的时候老是不成功,仔细想了想知道了:在晃动鼠标的时候免不了一点点的错误,看来我们需要增加一个缓冲量。
在判断方向后加:
IF ( 当前两点的方向与tmpArr最后一个值不同 )
{
计数器+1
IF ( 计数器 > 缓冲量 )
{
tmpArr.push当前方向并清空计数器。
}
}
ELSE
{
清空计数器
}
验证失败大多是因为没有画出轨迹,无法目测造成的,其实也想画出轨迹,但我的目的就是让其他人不知道有这样的功能,所以没加,就连验证失败的提示都没有。
别忘了还有这几个问题:
1、鼠标移出该组件,TrackArr清空。
2、鼠标一段时间不动表示动作结束,开始计算。
3、解锁后不应再记录轨迹,但在N秒内没有操作数据将再次加锁。
- Flex 实现鼠标手势 无码 );
- flex 实现鼠标画线
- flex实现自定义鼠标
- flex实现自定义鼠标
- CSS的鼠标手势实现
- 在vb中实现鼠标手势
- 在vb中实现鼠标手势
- 鼠标手势
- Flex AIR 无边框、移动的实现
- 鼠标手势(Mouse Gesture)的C#实现源代码
- [转] 16行AHK代码实现鼠标手势!
- [转] 16行AHK代码实现鼠标手势!
- 使用Autohotkey 实现简单的全局鼠标手势功能
- ubunutu 安装鼠标手势
- Opera 鼠标手势
- “打架”的鼠标手势
- CSS鼠标手势
- chrome鼠标手势插件
- 解决远程连接服务器的最大连接数
- 创建和自动化Internet Explorer和资源管理器窗口
- 图像卷积(modify at 10-02-21)
- java内存溢出
- 眼睛 舌头健康
- Flex 实现鼠标手势 无码 );
- Android数据库(SQLiteDatabase)使用小结
- 搞笑
- 搞笑
- Reporting 报表相关的一切
- Java的内存泄漏
- 微软Project项目管理软件简介与安装配置
- Python 练习2
- 12性格导致贫穷--克制