【问题标题】:Why can't touchDown and mouseDown be combined?为什么touchDown和mouseDown不能结合?
【发布时间】:2023-04-03 08:49:01
【问题描述】:

所以在 Actionscript 3 和 Javascript 中,要让触摸事件适用于移动设备,我必须侦听 ontouch 事件...但是,触摸事件不会在桌面上触发。 但是,鼠标事件在移动设备和桌面设备上都会触发。

我的问题是:为什么 w3 有这个规范

仅仅使用 onmouseevent 不是很有意义吗?为了让事情在移动和桌面上运行,我总是必须监听这两个事件 - 显然这会导致移动设备上的问题,因为当我按下屏幕时会触发两个事件(这意味着我必须做一堆条件检查才能添加/删除事件)

我最初的想法是多点触控将是主要原因......但设计不能只包含事件的一些参数,如 .touches 吗?这可能伴随着 .pressure、.finger 宽度等......也许是 .type = "touch" 或 .type="mouse"

我敢肯定,触摸事件是经过深思熟虑的,所以我敢打赌有一些正当的理由。

【问题讨论】:

标签: javascript actionscript-3 mobile standards w3c


【解决方案1】:

W3C 已发布initial draft of a specification that combines mouse and touch events into a single family of Pointer Events

Windows 8 和 IE10 目前支持这种统一的事件样式。

【讨论】:

    【解决方案2】:

    这与 ECMA 无关。 this spec section 涵盖了此触摸事件/鼠标事件交互。特别是,绿色的注释说,

    "如果一个 Web 应用程序可以处理触摸事件,它就可以拦截它们, 并且不需要发送相应的鼠标事件 用户代理。如果 Web 应用程序不是专门为 触摸输入设备,它可以对随后的鼠标事件做出反应 而是。”

    我建议您熟悉所引用的规范。

    【讨论】:

    • 不错。不知道有这样的文件。我想知道 preventDefault 是否也会在 flash 中停止鼠标事件。虽然我听说有时在设备上的 as3 中,鼠标事件是在触摸事件之前调度的。
    • 是的,JS 规范未涵盖的所有内容都应包含在其他规范中 - 在大多数情况下,它将是 w3c 规范,因此您可以使用 some topic site:w3.org 搜索引擎搜索相关主题查询。
    • 感谢@AlexanderPavlov,但我最初的问题是为什么它会这样设计?
    • @K2xL 鼠标事件 API(特别是 MouseEvent 接口)比触摸屏被认为是 DOM 事件生成早了大约十年(this doc 可以追溯到 2000 年 11 月)。我想,这是主要原因。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-21
    • 1970-01-01
    相关资源
    最近更新 更多