Flex 实现鼠标手势 无码 );
声明:自己想的、写的东西,转载请注明出处; 不要向我要代码; 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
&
相关文档:
1、当创建一个数组的时候避免用new操作符,用 var a:Array = [];而不用var a:Array = new Array();
2、快速的复制一个数组:
var copy : Array = sourceArray.concat ();
3、设置一个数组的值是非常忙的:
employees.push ( employee ); employees[2] = employee;
4、从一个数组中取得值的速度是设置一个数组值的两倍 ......
<mx:DataGrid id="dg" click="select()" dataProvider= "{modelLocator.resultList}" borderStyle="none"
verticalGridLines="false" horizontalGridLines="false" verticalScrollPolicy="off" rowCount="10"
fontSize="16" fontStyle="normal" fontThickness="0" width="100%" height="100%">
<mx:columns& ......
Flex中如何通过strokeWidth, strokeColor和shadowColor样式,创建一个自定义风格的HRule或VRule
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical"
verticalAlign="middle"
&nbs ......
1、假如一个自定义控件被用在一个主控件里,在自定义控件里的方法可以转换为主控件的方法,完成调用。
userRulesCanvas.mxml 和 editRulesCanvas.mxml
compent控件代码如下:
private function submitClick():void
{
......
ArrayCollection经常做ComboBox控件的集合还有DataGrid的集合,要注意它的格式。data的属性里面如果是数字不需要双引号,若是字符串就必须加,而且需要提前作var定义
public var outgoing:String;
  ......