zoukankan      html  css  js  c++  java
  • [AIR] 检测移动设备运动

    Accelerometer 类根据由设备的运动传感器检测的活动调度事件。此数据表示设备的位置或沿三维轴的移动。当设备移动时,传感器会检测到此移动并返回加速数据。Accelerometer 类提供了各种方法,用于查询是否支持加速计以及设置调度加速事件时使用的速率。

    注意:使用 Accelerometer.isSupported 属性测试运行时环境是否能够使用此功能。当为各个 API 入口列出的运行时版本可以访问 Accelerometer 类及其成员时,运行时的当前环境将确定此功能的可用性。例如,您可以使用 Flash Player 10.1 的 Accelerometer 类属性编译代码,但是需要使用 Accelerometer.isSupported 属性测试 Accelerometer 功能在 Flash Player 运行时的当前部署环境中的可用性。如果 Accelerometer.isSupported 在运行时为 true,则当前存在 Accelerometer 支持。

     1 package
     2 {
     3     import flash.display.Sprite;
     4     import flash.display.StageAlign;
     5     import flash.display.StageScaleMode;
     6     import flash.events.AccelerometerEvent;
     7     import flash.sensors.Accelerometer;
     8     import flash.text.TextField;
     9     import flash.text.TextFieldAutoSize;
    10     
    11     /**
    12      * @author Frost.Yen
    13      * @E-mail 871979853@qq.com
    14      * @create 2015-6-17 下午2:59:32
    15      *
    16      */
    17     public class AccelermeterTest extends Sprite
    18     {
    19         private var _accelerometer:Accelerometer;
    20         private var _oldAccX:Number;
    21         private var _oldAccY:Number;
    22         private var _oldAccZ:Number;
    23         private var _sum:Number;
    24         private var _txt:TextField;
    25         public function AccelermeterTest()
    26         {
    27             super();
    28             // 支持 autoOrient
    29             stage.align = StageAlign.TOP_LEFT;
    30             stage.scaleMode = StageScaleMode.NO_SCALE;
    31             _txt=new TextField()
    32             _txt.x=10;
    33             _txt.y=10;
    34             _txt.autoSize=TextFieldAutoSize.LEFT;
    35             this.addChild(_txt);
    36             if(Accelerometer.isSupported){
    37                 _oldAccX=0;
    38                 _oldAccY=0;
    39                 _oldAccZ=0;
    40                 _sum=0;
    41                 _accelerometer=new Accelerometer();
    42                 _accelerometer.setRequestedUpdateInterval(1000);
    43                 _accelerometer.addEventListener(AccelerometerEvent.UPDATE,onUpdate);
    44             }else{
    45                 _txt.text="当前设备不支持加速计。";
    46             }
    47         }
    48         private function onUpdate(e:AccelerometerEvent):void{
    49             _sum=0;
    50             const k:Number=5;//越大敏感度越高
    51             var accX:Number=Math.round(e.accelerationX*k)/k;
    52             var accY:Number=Math.round(e.accelerationY*k)/k;
    53             var accZ:Number=Math.round(e.accelerationZ*k)/k;
    54             _sum+=Math.abs(accX-_oldAccX);
    55             _sum+=Math.abs(accY-_oldAccY);
    56             _sum+=Math.abs(accZ-_oldAccZ);
    57             _oldAccX=accX;
    58             _oldAccY=accY;
    59             _oldAccZ=accZ;
    60             _txt.text=
    61                 "event.accelerationX="+e.accelerationX+"
    "+
    62                 "event.accelerationY="+e.accelerationY+"
    "+
    63                 "event.accelerationZ="+e.accelerationZ+"
    "+
    64                 "accX="+accX+"
    "+
    65                 "accY="+accY+"
    "+
    66                 "accZ="+accZ+"
    "+
    67                 "sum="+_sum;
    68             trace(e.accelerationX,e.accelerationY,e.accelerationZ);
    69             if(_sum >0.2){
    70                 //trace(sum,"摇手机");
    71             }
    72         }
    73     }
    74 }
  • 相关阅读:
    使用Strust2框架写HelloWorld
    MyEclipse10搭建Strust2开发环境
    MyEclipse使用总结——在MyEclipse中设置jsp页面为默认utf-8编码
    HTML一些标签注意事项
    Spring常用注解
    VB.NET中Module的概念
    vs2008发布项目失败的解决方法
    Java开发中的一些小技巧
    DNS服务器
    关于在Struts2的Action中使用domain模型接收参数的问题
  • 原文地址:https://www.cnblogs.com/frost-yen/p/4583759.html
Copyright © 2011-2022 走看看