识别Flex Mobile中列表组件的持有/长按

时间:2011-09-13 14:17:21

标签: flex actionscript-3 list mobile

我正在尝试在Flex移动项目中创建我自己的自定义列表组件,当用户触摸列表项并在指定时间内按住手指时会触发事件。 某种类型的“longTouch”-Event就像它在原生的android listitems上实现的那样编辑条目。

我试图侦听MOUSE_DOWN事件以启动计时器并在计时器结束时调度事件。但是这种方法失败了,因为我无法获得用户按下的listitem,因为只有在用户从列表中抬起手指后,List组件才会更新“selectedItem”属性。

提前致谢

Andre Uschmann

1 个答案:

答案 0 :(得分:3)

没有通过Flash Player Native API公开longTouch(或longPress)事件。

一种选择是使用TOUCH_BEGINTOUCH_ENDtimer推广自己。

基本上:

  1. 当用户开始触摸时,启动计时器。
  2. 当touch_End事件触发时;检查计时器,看看它使用currentCount运行了多长时间。如果它足够长,可以被视为“长触摸”,则调度您的自定义longPress事件。如果不;然后停止计时器并忽略。

    这可能都发生在渲染器内;所以你确切知道按下了什么项目。

  3. 我希望这比使用鼠标事件更加稳固,鼠标事件似乎在基于触摸的设备上不一致