Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex 识别Flex Mobile中列表组件上的按住/长按_Apache Flex_Actionscript 3_List_Mobile - Fatal编程技术网

Apache flex 识别Flex Mobile中列表组件上的按住/长按

Apache flex 识别Flex Mobile中列表组件上的按住/长按,apache-flex,actionscript-3,list,mobile,Apache Flex,Actionscript 3,List,Mobile,我正在尝试在Flex mobile项目中创建自己的自定义列表组件,当用户触摸列表项并按住手指一段时间时,该组件将触发事件。 例如,在本机android listitems上实现了某种“longTouch”事件,比如编辑条目 我试图监听MOUSE_DOWN事件以启动计时器,并在计时器结束时发送事件。但是这种方法失败了,因为我无法获取用户按下的listitem,因为List组件仅在用户从列表中抬起手指后才更新“selectedItem”属性 提前谢谢 Andre Uschmann没有通过Flash

我正在尝试在Flex mobile项目中创建自己的自定义列表组件,当用户触摸列表项并按住手指一段时间时,该组件将触发事件。 例如,在本机android listitems上实现了某种“longTouch”事件,比如编辑条目

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

提前谢谢

Andre Uschmann

没有通过Flash Player本机API暴露的longTouch(或longPress)事件

一个选择是使用自己的卷,然后使用

基本上:

  • 当用户开始触摸时,启动计时器

  • 触发touch_End事件时;检查计时器,查看它已运行了多长时间。如果长到足以被视为“长触”,则发送您的自定义longPress事件。若否,;然后停止计时器并忽略

    这一切都可能发生在渲染器内部;这样你就能确切地知道是什么东西被压了


  • 我希望这比使用鼠标事件更可靠,因为在基于触摸的设备上鼠标事件似乎不一致

    感谢您的快速响应。实现“LONG_TOUCH”本身并不是问题,但我不知道如何获取启动计时器时用户触摸的列表项。该死,你比我快了!:)您还可以使用TouchEvent.TAP捕获TAP事件。请参阅此处的更多信息问题在于计时器启动时,有一个eventListener正在移动,当您移动一点时,它会停止计时器。而且,在移动设备上,手指不动也不容易(我的手指在屏幕上几乎不停滑动,但它的移动足以停止我的计时器)@Snote我在其他帖子中没有看到任何关于移动的内容。所以,移动你的手指一点就会触碰你的末端?有趣。你去过图书馆吗?[顺便说一句,我将投票以完全相同的方式结束]在StartOngPress:
    list.addEventListener(TouchEvent.TOUCH\u MOVE,endLongPress)和在StartOngPressMouse中:
    列表。addEventListener(MouseEvent.MOUSE\u MOVE,endLongPressMouse)。并删除endLongPress和endLongPress中可能重复的鼠标请看这篇文章,作者做了一件非常巧妙的事情来处理捕获长触摸事件。希望能有帮助。