• 重力感应示例


    package 
    {
    import flash.display.Sprite;
        import flash.display.StageAlign;
        import flash.display.StageScaleMode;
        import flash.events.Event;
        import flash.events.AccelerometerEvent;
        import flash.sensors.Accelerometer;
     public class AccelerometerTest extends Sprite
        {
            private var ball:Sprite;
            private var accelerometer:Accelerometer;        
            private var xSpeed:Number = 0;
            private var ySpeed:Number = 0;
            private const RADIUS = 20;
            
            public final function AccelerometerTest()
            {
                stage.scaleMode = StageScaleMode.NO_SCALE;
                stage.align = StageAlign.TOP_LEFT;
                
                createBall();
                                        
                if (Accelerometer.isSupported)
                {
                    accelerometer = new Accelerometer();
                    accelerometer.addEventListener(AccelerometerEvent.UPDATE, accUpdateHandler);
                    stage.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
                }
            }
     private final function createBall():void
            {
                 ball = new Sprite();
                 ball.graphics.beginFill(0xFF0000);
                 ball.graphics.drawCircle(0, 0, RADIUS);
                 ball.cacheAsBitmap = true;
                 ball.x = stage.stageWidth / 2;
                 ball.y = stage.stageHeight / 2;
                 addChild(ball);
            }
    
            private final function enterFrameHandler(event:Event):void
            {
                event.stopPropagation();
                moveBall();
            }
            private final function moveBall():void
            {
                var newX:Number = ball.x + xSpeed;
                var newY:Number = ball.y + ySpeed;
                if (newX < 20)
                {
                    ball.x = RADIUS;
                    xSpeed = 0;
                }
                else if (newX > stage.stageWidth - RADIUS)
                {
                    ball.x = stage.stageWidth - RADIUS;
                    xSpeed = 0;
                }
                else
                {
                    ball.x += xSpeed;
                }
                
                if (newY < RADIUS)
                {
                    ball.y = RADIUS;
                    ySpeed = 0;
                }
                else if (newY > stage.stageHeight - RADIUS)
                {
                    ball.y = stage.stageHeight - RADIUS;
                    ySpeed = 0;
                }
                else
                {
                    ball.y += ySpeed;
                }
            }
    

     

      private final function accUpdateHandler(event:AccelerometerEvent):void
            {
                xSpeed -= event.accelerationX * 2;
                ySpeed += event.accelerationY * 2;
            }
        }
    }
  • 相关阅读:
    Dependent Parameters in Concurrent Program using Special Value Set
    USER Management | Role Categories | Roles | Indirect Responsibilities
    asp.net core 1.0初识
    ASP.NET Core管道深度剖析
    linux图机界面机制
    类对象管理方式
    UNICODE串转换成char类型串的四种方法
    进程句柄表与创建句柄表
    虚拟化技术
    Windows基于Apache的svn服务器配置
  • 原文地址:https://www.cnblogs.com/kuailezoe/p/3484307.html
Copyright © 2020-2023  润新知