首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XNA wp7手势检测问题

XNA wp7手势检测问题
EN

Stack Overflow用户
提问于 2013-05-21 15:48:16
回答 2查看 583关注 0票数 0

我必须在我的应用程序中使用这两种类型的输入(手势和简单的触摸)。我对此有意见。例如,我使用双击手势,在它检测到之前,我有一次简单触摸的检测。这不是我期望的那样,因为简单的触摸有它自己的逻辑,这给我带来了很多问题。拖拽也有同样的问题,在检测到拖拽之前,先简单触摸一下。如果不处理简单的触摸逻辑,我如何处理手势?下面是我尝试这样做的方式:

代码语言:javascript
复制
TouchPanel.EnabledGestures = GestureType.DoubleTap | GestureType.VerticalDrag;
        while (TouchPanel.IsGestureAvailable)
        {
            isGesture = true;
            GestureSample gestureSample = TouchPanel.ReadGesture();
            switch (gestureSample.GestureType)
            {
                case GestureType.DoubleTap:

                    //some logic
                    break;
                case GestureType.HorizontalDrag:
                    //some logic
                    break;
            }
        }


        if (Consts.TouchCollection.Count == 1) 
        {
            var touch = Consts.TouchCollection[0]; //here needed only first touch

            switch (touch.State)
            {
                case TouchLocationState.Pressed:
                     //This one called first if used double tap

                    break;
                case TouchLocatiomState.Moved:
                    //smth
                    break;
                case TouchLocationState.Released:
                    //smth
                    break;
            }
        }

当使用双击手势时,此代码调用Pressed -> Released -> DoubleTap -> Pressed,我只想处理双击的情况。如何解决这个问题?为我的英语感到抱歉,希望我的问题是清楚的。任何帮助我们都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-23 21:58:54

我得出的结论是,要做到这一点,唯一可能的方法是在不使用TouchPanel.EnabledGestures的情况下编写自己的输入。

票数 0
EN

Stack Overflow用户

发布于 2013-05-21 18:46:09

为了避免在处理手势之后处理简单的触摸事件,将您在触摸处理开始时设置的布尔标志添加到true,让我们称其为handleSimpleTouch。如果处理手势,请将handleSimpleTouch设置为false。然后,在处理简单的触摸之前,检查handleSimpleTouch的值,如果是真的,则正常处理,否则,什么也不做。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16664750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档