scaleform mobile sdk for android 多点触摸 修正
修正 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 多点触摸 修正的更多相关文章
- Linux与Android 多点触摸协议【转】
本文转载自:http://blog.csdn.net/xubin341719/article/details/7833277 一.Linux与Android 多点触摸协议 为了使用功能强大的多点触控设 ...
- Linux & Android 多点触摸协议
Linux & Android 多点触摸协议 Android4.0多点触摸入门 1 KERNEL 对于触摸屏的驱动我们简单的划分为两个主要的部分,一个是注册,另一个是上报. 1.1 注册 单点 ...
- Linux/Android多点触摸协议
链接点击打开链接 关于Linux多点触摸协议大家可以参考kernel中的文档:https://www.kernel.org/doc/Documentation/input/multi-touch-pr ...
- Linux Android 多点触摸协议 原文出自【比特网】,转载请保留原文链接:http://soft.chinabyte.com/os/71/12306571.shtml
为了使用功能强大的多点触控设备,就需要一种方案去上报用户层所需的详细的手指触摸数据.这个文档所描述的多点触控协议可以让内核驱动程序向用户层上报任意多指的数据信息. 使用说明 单点触摸信息是以ABS承载 ...
- Android多点触摸放大缩小图片
1.Activity package com.fit.touchimage; import android.app.Activity; import android.graphics.Bitmap; ...
- 搞定android多点触摸模拟
原理在android 创建多点触摸虚拟设备,然后往设备写模拟数据可以
- Linux/Android多点触摸协议【转】
本文转载自: 链接点击打开链接 关于Linux多点触摸协议大家可以参考kernel中的文档:https://www.kernel.org/doc/Documentation/input/multi-t ...
- Android多点触摸缩放图片-android学习之旅(四)
获取多触摸点 核心代码: 获取触摸点的个数和位置 public boolean onTouch(View v, MotionEvent event) { switch (event.getAction ...
- Android多点触摸 与 手势识别
1. 事件类型 MotionEvent.ACTION_DOWN MotionEvent.ACTION_MOVE MotionEvent.ACTION_UP 2. 事件传递 public boolean ...
随机推荐
- 基础之ThreadStatic
public class Bean { public Bean() { } public static String Current { get { if (guid == null) guid = ...
- java多线程 join方法以及优先级方法
/*join:当A线程执行到了B线程的.join()方法时,A就会等待.等B线程都执行完,A才会执行. join可以用来临时加入线程执行. 1.线程使用join方法,主线程就停下,等它执行完,那么如果 ...
- python拆分excel脚本
因为需要将一个很大的excel按500条拆分为多个excel,手工操作实在太麻烦,就写了个python小脚本,现在是分为了多个sheet页,使用者可根据自己实际情况修改成多个文件的形式 #!/usr/ ...
- .NET和JSON
JSON(JavaScript Object Notation)已经成为了现在大多数程序间数据交换的存储格式,在很多地方取代了XML文件的位置.JSON实际就是JavaScript的对象数组. .NE ...
- makefile--#的不正确使用
/usr/vacpp/bin/makeC++SharedLib -o /cicm/src/dao/testcase/rel/FUNCTEST.ibmcpp -brtl -bnortllib -p100 ...
- Headfirst设计模式的C++实现——迭代器(Iterator)改良版
iterator.h #ifndef _ITERATOR_H_ #define _ITERATOR_H_ class Iterator { public: ; ; }; #endif menu.h # ...
- memcached一些整理
.NET中使用Memcached的相关资源整理 Memcached官方站点:http://www.danga.com/memcached/ Memcached Win32 1.2.6下载: ...
- x86与x64与x86_64
x86是指intel的开发的一种32位指令集,从386开始时代开始的,一直沿用至今,是一种cisc指令集,所有intel早期的cpu,amd早期的cpu都支持这种指令集,ntel官方文档里面称为“IA ...
- 软件测试 -- 和用户共同测试(UAT测试)的注意点有哪些
软件产品在投产前,通常都会进行用户验收测试.如果用户验收测试没有通过,直接结果就是那不到“Money”,间接影响是损害了公司的形象,而后者的影响往往更严重.根据作者的经验,用户验收测试一定要让用户满意 ...
- Java使用memcached
1.加载commons-pool-1.5.6.jar.java_memcached-release_2.6.6.jar.slf4j-api-1.6.1.jar.slf4j-simple-1.6.1.j ...