修正 scaleform 的多点触控 (随手一记 给后来的人做个参考)

scaleform 版本号 4.2.24 (估计这就是最后一个 移动版的版本了,万年没有更新了)

开始 一直以为 scaleform 没有做  多点触控 和 手势 。其实 都已经封装好了。只是PC端的模拟器不支持。(调试 比较蛋疼只能 用真机了)

但是在用的时候发现 TouchEvent.Begin  有问题 只能获取第一个点击点,和第一个抬起点,move 操作可以正常获取。

如果不修改 代码的话  完全可以用 通过监听 move 来做操作的 但是 总是感觉 不爽。(这个 每次 点击 都会紧跟一个 move 操作,不知道是 bug , 还是因为屏幕ppi 太高的原因)

问题很好解决 找到 MainActivity.java 文件的最后 几行

for (int i = ; i < p_count; i++)
{
  int action_id = action%; //就是这一行   if (Debug.ENABLED && action != )
  {
    Log.d("GFxPlayer", " PointerIds: " + " " + event.getPointerId(i) + "Action: "+Integer.toString(action)
      + " ID: "+Integer.toString(action_id) );
  }
  NativeOnTouch(event.getPointerId(i), action_id, event.getX(i), event.getY(i));
}

android 在 多点触控的时候 这个 action 值 是不定的。但是很有规律,(我android一窍不通,不清楚为何这个样子),在只有一个点击点是  action = 0;

当有两个点击点是 会变成 261(256 + 5 + 0 )  , 当有3 个点击点时 会变成517 (512 + 5 + 0) 依次类推 。 具体的其他规律 想摸索可以自己 打印出来看看。

知道啥意思的 也请多多指教。其实本应该将 261 转成 0 , 517 转成 0 的 , 但是 我发现他在  Platform_Android_GL.cpp 文件中对 TouchEvents[] 的 5,6,7 同样设置了 GFx::Event::TouchBegin, GFx::Event::TouchEnd, GFx::Event::TouchMove}; 这样就不用必须 转成 0 1 2,转成 5,6,7 也是可以的。

之后就可以在 AS3 中 通过 如下代码来进行 操作了。

Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;

stage.addEventListener(TouchEvent.TOUCH_BEGIN,onTouchBegin);

尾巴:

最近在搞 scaleform 的 平滑移动 , 毫无头绪中 , 几个线程完全看晕。有知道怎么解决求指教啊。

我自己认为 scaleform 出现 移动不平滑的原因是:

1.每次  drawFrame 的时间 不等长 , 导致 指教用 ENTER_FRAME 进行刷帧 ( x + speed ) 不平稳。

delta 这个时间差 无法 在程序中 直接获取。

2.由于线程 间 相互注入 导致 在执行完 Advance 方法后 未必 一定会进行 draw , 导致到 物体移动不规律。

scaleform mobile sdk for android 多点触摸 修正的更多相关文章

  1. Linux与Android 多点触摸协议【转】

    本文转载自:http://blog.csdn.net/xubin341719/article/details/7833277 一.Linux与Android 多点触摸协议 为了使用功能强大的多点触控设 ...

  2. Linux & Android 多点触摸协议

    Linux & Android 多点触摸协议 Android4.0多点触摸入门 1 KERNEL 对于触摸屏的驱动我们简单的划分为两个主要的部分,一个是注册,另一个是上报. 1.1 注册 单点 ...

  3. Linux/Android多点触摸协议

    链接点击打开链接 关于Linux多点触摸协议大家可以参考kernel中的文档:https://www.kernel.org/doc/Documentation/input/multi-touch-pr ...

  4. Linux Android 多点触摸协议 原文出自【比特网】,转载请保留原文链接:http://soft.chinabyte.com/os/71/12306571.shtml

    为了使用功能强大的多点触控设备,就需要一种方案去上报用户层所需的详细的手指触摸数据.这个文档所描述的多点触控协议可以让内核驱动程序向用户层上报任意多指的数据信息. 使用说明 单点触摸信息是以ABS承载 ...

  5. Android多点触摸放大缩小图片

    1.Activity package com.fit.touchimage; import android.app.Activity; import android.graphics.Bitmap; ...

  6. 搞定android多点触摸模拟

    原理在android 创建多点触摸虚拟设备,然后往设备写模拟数据可以

  7. Linux/Android多点触摸协议【转】

    本文转载自: 链接点击打开链接 关于Linux多点触摸协议大家可以参考kernel中的文档:https://www.kernel.org/doc/Documentation/input/multi-t ...

  8. Android多点触摸缩放图片-android学习之旅(四)

    获取多触摸点 核心代码: 获取触摸点的个数和位置 public boolean onTouch(View v, MotionEvent event) { switch (event.getAction ...

  9. Android多点触摸 与 手势识别

    1. 事件类型 MotionEvent.ACTION_DOWN MotionEvent.ACTION_MOVE MotionEvent.ACTION_UP 2. 事件传递 public boolean ...

随机推荐

  1. Warning: Attempt to present * on * which is already presenting *

    Warning: Attempt to present (要被presented的控制器)  on (哪个控制器来presenting) which is already presenting (已经 ...

  2. CBQW ---分组表单展示

    工作流审核表单后,将表单信息展示页面中. Rest读取展示 展示方式有2 一.              CBQW内容查询, 通过CBQW内容查询.分别通过设置itemstyle和header xsl ...

  3. springmvc学习(四)

    1.使用 @CookieValue 绑定请求中的 Cookie 值 例子: java @RequestMapping(value="/testCookieValue") publi ...

  4. 【转】提高PHP性能的53个技巧

    PHP技巧汇总:提高PHP性能的53个技巧用单引号代替双引号来包含字符串,这样做会更快一些.因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符 ...

  5. HTML5:基本使用

    单行文本输入框 type为text表示input元素为一个单行文本框,是input元素的默认表现形式.单行文本输入框支持下面的属性设置. A:设定元素大小 maxlength属性设定用户能够输入的字符 ...

  6. php导出word(可包含图片)

    为大家介绍一个 php 生成 导出word(可包含图片)的代码,有需要的朋友可以参考下. 之前介绍过php生成word的例子,只是不能包含图片与链接. 今天 为大家介绍一个 php 生成 导出word ...

  7. jquery 循环显示div的示例代码

    我们用一个语句就让下面五个div显示成功,具体实现如下,感兴趣的朋友可以参考下 直接看例子 复制代码代码如下: for(var p=1; p<=5; p++){  $("#proper ...

  8. 使用ECLIPSE+MINGW搭建C/C++开发环境

    有个朋友要我帮忙跑一个C程序而我现在主要用java,电脑上也就没有C语言的编译和开发环境,在学习java的这段期间,接触到了Eclipse这个强大的IDE,用惯了.就为调试一个程序,去安装一个VS觉得 ...

  9. Python原型模式

    如果想根据现有对象复制出新的对象并对其修改,可以考虑原型模式(Prototype Pattern) class Point: __slots__ = ("x", "y&q ...

  10. cocos2dx伸缩式列表效果

    效果: 代码: ElasticListView.h #pragma once //std #include <string> #include <map> //cocos #i ...