as学习笔记(十四)--鼠标事件及滑杆slider的实现
sshong 发表于2008年4月16日 20:35:00 更新于2008年4月16日 20:37:00
as3的鼠标事件有

CLICK :相当于在元件上的一个按下和一个弹起鼠标主键,即一个MOUSE_DOWN和一个MOUSE_UP
DOUBLE_CLICK :先触发一次CLICK, 为抵消click动作的影响,必须在doubleclick中逆click行动一次先。举个例子,譬如单击暂停或者播放,双击全屏,那么在双击动作中,首先逆单击动作即先播放或者暂停,然后再全屏,即可。
MOUSE_DOWN :在元件上按下鼠标主键
MOUSE_MOVE :在元件上鼠标主键
MOUSE_OUT :鼠标主键移出元件
MOUSE_OVER :鼠标主键移入元件
MOUSE_UP :在元件上弹起鼠标主键
MOUSE_WHEEL :在元件上滚轮
ROLL_OUT 以及 ROLL_OVER,这两个与前面的mouseover和mouseout很混淆,据说是mouseOver是一个冒泡事件,而rollOver并不冒泡。有待进一步考证。

如果要实现一个slider即滑杆:
滑杆的功能是:按下滑头,移动鼠标,滑头随着鼠标移动(沿滑轨x移动),弹起鼠标,滑头停止移动。
即:
1.按下滑头(鼠标必须在滑头上按下)
2.移动鼠标(鼠标在任意位置)
3.弹起鼠标(鼠标在任意位置)

我觉得有两种思路:

1.检测滑头的mouse_down,一旦检测到,立即startdrag,并侦听滑头的mousemove事件以及mouseup。在mousemove中将滑头的y不变,而只变x。在mouseup中stopdrag。
这个思路是想靠startdrag将鼠标绑定在滑头上,这样就可以侦听到滑头的mousemove和mouseup事件。
通过实验,发现形不通,因为drag时鼠标总是会移出滑头,而且在mousemove中的将y不变总是瞬间被drag出去,形似无效。

2.检测滑头的mousedown,一旦检测到,侦听stage的mousemove和mouseup,在mousemove中设定滑头的x位置。在mouseup中,removestage的这两个事件。
这个思路是通过只要按下了滑头,不管你是不是在滑头上移动或者释放鼠标都能起到作用。经测试,运行很好。
标签:无分类:As3&Flex阅读:2832
评论
暂无评论
添加评论
您的大名,限长10汉字,20英文(*)
电子信箱(*)
您的网站
正文,限长500汉字,1000英文(*)
验证码(*) 单击刷新验证码
联系我
博客订阅