我正在为一个使用Flame.js的Ember应用程序添加iOS支持。大多数Flame.js小部件都是don't have built-in support for touch events at the moment,所以我正在努力将其添加到我需要的小部件中。我已经让touchStart
和touchEnd
在点击和某些状态转换方面工作得很好。
但是,touchMove
到目前为止还很混乱。我需要它来拖动,为此,我需要跟踪移动开始的位置和移动的位置。到目前为止,我还不能从touchMove
中一致地获得所有这些信息。各种resources建议我应该在event.touches
数组中查找我的数据,但到目前为止,我构建的jsFiddles在尝试获取该数组上的length
时都会抛出TypeError
,它们声称该数组未定义。(通常要查找的位置event.pageX
、event.pageY
等也未定义。)
我用iPad和Phantom Limb进行了测试,后者可以通过访问originalEvent
来获取数据,但在实际的iPad上不起作用,我认为是因为originalEvent
属性是Phantom Limb工作方式的产物。(我的理论是,访问originalEvent
就是访问由Phantom Limb转换为touchMove
的原始mouseMove
。)
为什么event.touches
数组对我来说是未定义的?更重要的是,我可以在哪里获得触摸位置数据以便我可以拖动?
这是我的most representative jsFiddle。点击按钮得到一个面板,如果这个操作正常的话,你可以通过拖动它的标题栏来重新定位它。App.TestPanel的titleView
中的Flam.State扩展覆盖了Flame本身的原始状态。
1条答案
按热度按时间1l5u6lss1#
我不认为它只是PhantomLimb的一个产物。我们有一个类似的挑战,并使用以下: