Starling Touch事件

// 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 stage
var 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 : 事件触发时间(此时间是从应用程序启动开始计时的)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值