[AIR] 检测移动设备运动
2015-06-17 16:51
495 查看
Accelerometer 类根据由设备的运动传感器检测的活动调度事件。此数据表示设备的位置或沿三维轴的移动。当设备移动时,传感器会检测到此移动并返回加速数据。Accelerometer 类提供了各种方法,用于查询是否支持加速计以及设置调度加速事件时使用的速率。
注意:使用
注意:使用
Accelerometer.isSupported属性测试运行时环境是否能够使用此功能。当为各个 API 入口列出的运行时版本可以访问 Accelerometer 类及其成员时,运行时的当前环境将确定此功能的可用性。例如,您可以使用 Flash Player 10.1 的 Accelerometer 类属性编译代码,但是需要使用
Accelerometer.isSupported属性测试 Accelerometer 功能在 Flash Player 运行时的当前部署环境中的可用性。如果
Accelerometer.isSupported在运行时为
true,则当前存在 Accelerometer 支持。
package { import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.AccelerometerEvent; import flash.sensors.Accelerometer; import flash.text.TextField; import flash.text.TextFieldAutoSize; /** * @author Frost.Yen * @E-mail 871979853@qq.com * @create 2015-6-17 下午2:59:32 * */ public class AccelermeterTest extends Sprite { private var _accelerometer:Accelerometer; private var _oldAccX:Number; private var _oldAccY:Number; private var _oldAccZ:Number; private var _sum:Number; private var _txt:TextField; public function AccelermeterTest() { super(); // 支持 autoOrient stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; _txt=new TextField() _txt.x=10; _txt.y=10; _txt.autoSize=TextFieldAutoSize.LEFT; this.addChild(_txt); if(Accelerometer.isSupported){ _oldAccX=0; _oldAccY=0; _oldAccZ=0; _sum=0; _accelerometer=new Accelerometer(); _accelerometer.setRequestedUpdateInterval(1000); _accelerometer.addEventListener(AccelerometerEvent.UPDATE,onUpdate); }else{ _txt.text="当前设备不支持加速计。"; } } private function onUpdate(e:AccelerometerEvent):void{ _sum=0; const k:Number=5;//越大敏感度越高 var accX:Number=Math.round(e.accelerationX*k)/k; var accY:Number=Math.round(e.accelerationY*k)/k; var accZ:Number=Math.round(e.accelerationZ*k)/k; _sum+=Math.abs(accX-_oldAccX); _sum+=Math.abs(accY-_oldAccY); _sum+=Math.abs(accZ-_oldAccZ); _oldAccX=accX; _oldAccY=accY; _oldAccZ=accZ; _txt.text= "event.accelerationX="+e.accelerationX+"\n"+ "event.accelerationY="+e.accelerationY+"\n"+ "event.accelerationZ="+e.accelerationZ+"\n"+ "accX="+accX+"\n"+ "accY="+accY+"\n"+ "accZ="+accZ+"\n"+ "sum="+_sum; trace(e.accelerationX,e.accelerationY,e.accelerationZ); if(_sum >0.2){ //trace(sum,"摇手机"); } } } }
相关文章推荐
- youwuku和koudaitong以及weimeng差异
- iphone使用keychain来存取用户名和密码
- RHEL6.4 安装 highpoint RocketRAID 2720 阵列卡驱动
- Xcode运行出错Installation Failed Invalid argument
- linux下,使用opencv训练级联分类器opencv_traincascade
- Installation error: INSTALL_FAILED_CPU_ABI_INCOMPATIBLE
- 浅谈使用NIO,AIO的感受
- 关于:HTTP Header -> Content-Type: text/plain Cache-Control: no-cache IE浏览器弹出错误下载对话
- linux环境下使用opencv训练级联分类器traincascade
- hdoj 1022 Train Problem I
- 【ORA-00060】 deadlock detected while waiting for resource
- 记AWSome Day Shanghai 150612
- Could not reliably determine the server's fully qualified domain name?
- HDU 1337 The Drunk Jailer--(模拟题找规律)
- 当摄像机被墙挡住后,墙消失,相反则出现(三维坐标到二维坐标的转换实例Camera.main.WorldToScreenPoint)
- raid简介
- http://daikainan.iteye.com/blog/1405575
- hdu3555 - Bomb(2010 ACM-ICPC Multi-University Training Contest(12))数位dp
- UNIX文件结构(转自UNIX/AIX操作系统基础教程)
- Cuda kernel failed. Error: invalid device function