Starling Touch事件

来源:互联网 发布:海康hiddns域名注册 编辑:程序博客网 时间:2024/06/14 03:06
// when the sprite is touched
_customSprite.addEventListener(TouchEvent.TOUCH, onTouchedSprite);
每当鼠标或手指与一个图形交互时,TouchEvent.TOUCH事件就会被抛出。Touch事件不
只是一个简单的事件而已,其中还包含了极其丰富的信息,接下来让我们深入地了解一下。
在下面的代码中,我们将在onTouch这个事件处理函数中输出TouchEvent 对象中携带的

Touch对象的phase属性:

private function onTouch (e:TouchEvent):void{// get the mouse location related to the stagevar touch:Touch = e.getTouch(stage);var pos:Point = touch.getLocation(stage);trace ( touch.phase );// store the mouse coordinates_mouseY = pos.y;_mouseX = pos.x;}

当我们开始点击方块或者进行一些交互的时候我们会看到会输出不同的phase值,phase属
性的所有可能值都被定义为TouchPhase类中的常量,下面列出这些值:
∗ began : 鼠标/手指开始交互(类似于mouseDown)
∗ ended : 鼠标/手指停止交互(类似于mouseClick)
∗ hover : 鼠标/手指悬于物体上(类似于mouseOver)
∗ moved : 鼠标/手指在物体上移动(类似于mouseDown + mouseMove)
∗ stationary : 鼠标/手指停止与物体的交互但仍停留在其上

接下来我们一起再来看一些TouchEvent事件对象中的另一些可用的API:
∗ ctrlKey : 触发Touch事件是是否按住Ctrl键
∗ getTouch: 得到此事件的Touch对象
∗ getTouches : 得到一组Touch对象(用于多点交互)
∗ shiftKey: 触发Touch事件是是否按住Shift键
∗ timestamp : 事件触发时间
∗ touches : 得到同一时间发生的全部Touch对象

shiftKey及ctrlKey属性对于判断是否按下组合键非常有用。因此每次产生交互时,都能得到
一个与当前手指或鼠标信息有关的Touch对象。
让我们一起来看Touch对象中的API:
∗ clone : 复制一个副本
∗ getLocation: 得到Touch事件触发的对应于当前坐标系的位置
∗ getPreviousLocation: 得到之前触发的Touch事件对应于当前坐标系的位置
∗ globalX、Y: 得到Touch事件触发的舞台位置 

∗ id: 一个Touch对象所拥有的独一无二的标示符
∗ phase : 指示当前事件触发的类型(阶段)
∗ previousGlobalX、Y : 得到之前触发的Touch事件舞台位置
∗ tapCount : 手指轻拍显示对象的次数(用以识别手指双拍)
∗ target : 触发Touch事件的对象
∗ timestamp : 事件触发时间(此时间是从应用程序启动开始计时的)

0 0
原创粉丝点击