找回密码
 注册
搜索
查看: 1507|回复: 3

[讨论] 通过JS实现Android的触屏事件

[复制链接]
发表于 2012-3-12 10:56:03 | 显示全部楼层 |阅读模式
  研究了Rexsee针对Android原生UI控件的扩展rexseeJavaView,直接使用JS调用即可。重点针对触屏事件做了整理,有兴趣的TX可以一起探讨。。

  总的来说,rexseeJavaView使得开发者可以捕获使用rexseeJavaView对象创建的Android原生View的运行时事件。

  触屏事件

  【说明】        触屏事件监听默认是禁止的,必须在样式表中设置样式来启动某个View的触屏事件监听机制。

  rexseeJavaView.setStyle('test','event_touch:true;event_touchmove:true;');

  alert('设置完毕!');

  rexseeJavaView.setStyle('test','event_touch:false;event_touchmove:false;');

  alert('设置完毕!');

  【事件】        voidonJavaViewTouchDown(Stringid,floatx,floaty)

  【说明】        当手指在屏幕上按下时触发。

  【参数】        id:View的ID。

  x:触屏点的水平位置。       

  y:触屏点的垂直位置。

  示例代码

  functiononJavaViewTouchDown(id,x,y){

                          rexseeJavaView.setStyle(id,'background-color:#ffff00;');

                  }

  【事件】        voidonJavaViewTouchUp(Stringid,floatx,floaty)

  【说明】        当手指从屏幕上离开时触发。

  【参数】        id:View的ID。

  x:触屏点的水平位置。       

  y:触屏点的垂直位置。       

  示例代码

  functiononJavaViewTouchUp(id,x,y){

                          rexseeJavaView.setStyle(id,'background-color:#ff0000;');

                  }

  【事件】        voidonJavaViewTouchCancel(Stringid,floatx,floaty)

  【说明】        当触屏动作取消时触发。

  【参数】        id:View的ID。

  x:触屏点的水平位置。       

  y:触屏点的垂直位置。

  示例代码

  functiononJavaViewTouchCancel(id,x,y){

                          alert("onJavaViewTouchCancel:"+id+","+x+","+y);

                  }

  【事件】        voidonJavaViewTouchMove(Stringid,floatx,floaty)

  【说明】        当手指在屏幕上移动时触发。注意,默认并不会捕捉TouchMove事件,需要用rexseeJavaView.listenToTouchMove(id,true)开始捕捉,用rexseeJavaView.listenToTouchMove(id,false)停止捕捉。用rexseeJavaView.isListeningToTouchMove(id)可以判断某个View当前是否正在监听TouchMove事件。

  【参数】        id:View的ID。

  x:触屏点的水平位置。       

  y:触屏点的垂直位置。       

  示例代码

  functiononJavaViewTouchMove(id,x,y){

                          document.getElementById('touchmove').innerHTML="onJavaViewTouchMove:"+x+","+y;

                  }

                 

  【事件】        voidonJavaViewClick(Stringid,floatx,floaty)

  【说明】        当发生单击时触发。

  【参数】        id:View的ID。

  x:触屏点的水平位置。       

  y:触屏点的垂直位置。

  示例代码

  functiononJavaViewClick(id,x,y){

                          alert("onJavaViewClick:"+id+","+x+","+y);

                  }

                 

  【事件】        voidonJavaViewDoubleClick(Stringid,floatx,floaty)

  【说明】        当发生双击时触发。

  【参数】        id:View的ID。

  x:触屏点的水平位置。       

  y:触屏点的垂直位置。

  示例代码

  functiononJavaViewDoubleClick(id,x,y){

                          alert("onJavaViewDoubleClick:"+id+","+x+","+y);

                  }

                 

  其它还有长按时触发:voidonJavaViewLongPress(Stringid,floatx,floaty);快速划屏(试图快速滚动内容)时触发:voidonJavaViewFling(Stringid,floatx1,floaty1,floatx2,floaty2);慢速划屏(试图慢速滚动内容)时触发:voidonJavaViewTouchScroll(Stringid,floatx1,floaty1,floatx2,floaty2)

  示例代码类似,不再多说。。不明白的可以在Rexsee社区里查看具体的示例:http://www.rexsee.com/project/index.php

  
发表于 2012-3-13 15:30:14 | 显示全部楼层
路过,太专业了
点评回复

使用道具 举报

发表于 2012-3-12 22:23:09 | 显示全部楼层
感觉Rexsee发展的不紧不慢,之前也没在意过,仔细看了以后惊喜不断
点评回复

使用道具 举报

发表于 2012-3-12 21:37:38 | 显示全部楼层
看到Rexsee近期推出的图片类应用就完全是基于原生UI来做的,可惜没有开放出来让大家直接使用这个框架
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-6-5 07:10 , Processed in 0.046337 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表