【发布时间】:2018-06-14 07:12:12
【问题描述】:
我实现了
MouseEvent.CLICK
在我的项目中用于触摸和非触摸设备。我现在正在使用
TouchEvent.TOUCH_TAP
因为这在触摸屏上效果更好。
但是,这不适用于非触控设备。所以我想使用适合平台的任何一个。我的项目已部署到移动和桌面。
我希望存在更好的方法,而不是在 if 语句中覆盖我的项目!
if (mobile) {
addEventListener(TouchEvent.TOUCH_TAP, closeClick);
} else {
addEventListener(MouseEvent.CLICK, closeClick);
}
【问题讨论】:
-
您在应用启动时设置一次的全局变量(设置为 TouchEvent.TOUCH_TAP 或 MouseEvent.CLICK),然后将此变量用于事件名称:addEventListener(SharedData.CLICKTAP, closeClick);
-
@organis,谢谢,但请问您将如何处理发送到 closeClick 函数的事件,我可以只使用函数 closeClick(event:*):void,还是这是不好的做法?
-
当然可以。只要您不需要事件对象中的任何内容,就可以了。如果你仍然需要一些东西(比如 target 或 currentTarget),你可以将它声明为最基本的 Event 类,这两个 TouchEvent 和 MouseEvent 子类。
-
@Organis 在这里,将
Event声明为侦听器的接收类型就可以了。我想知道如果需要在类似的应用程序架构中监听 mousedown/drag 和 touchdown/drag 事件,应该声明什么。 -
@Vesper,将 e 声明为任何 (e:*) 类型都可以。
标签: actionscript-3 optimization actionscript