android和iphone as3的可拖动菜单

时间:2013-09-20 15:06:06

标签: actionscript-3 menu air scroll

我想制作一个可拖动的菜单,如instragram和其他应用程序 我试图制作一个可移动的球,跟随我的手指/鼠标在x轴上,然后可以扔在舞台上然而,它不是在我的机器人,我不明白它的纯数学,应该工作,我试图twick任何价值但没有成功 任何建议为什么它不起作用? 谢谢

 package 
    {
        import flash.display.Sprite;
        import flash.events.MouseEvent;
        import flash.events.TimerEvent;
        import flash.geom.Rectangle;
        import flash.utils.Timer;
        import flash.geom.Point;
        /**
         * ...
         * @author 
         */
        public class GravityCoinsMain extends Sprite 
        {
            private var theCoin:Coin;
            private var deltaX:Number = 0;
            private var prevX:Number = 0;
            private var newX:Number = 0;
            private var PCControl:Boolean = true;
            private var speedLimit:Number = 15;     
            private var timer:Timer = new Timer(10);
            private var dragFactor:Number = 0.97;   

            private function update(te:TimerEvent):void
            {
                if (PCControl)
                {
                    if (theCoin.x > 0 && (theCoin.x < stage.stageWidth))
                    {
                        theCoin.x += deltaX;
                        deltaX *= dragFactor;
                    }
                }
                else
                {
                    prevX = newX;
                    newX = theCoin.x;
                    deltaX = newX - prevX;
                    var speed:Number =  deltaX ;

                    if ( speed > speedLimit )
                    {
                        deltaX *= speedLimit / speed;
                    }
                }
            }

            private function beginDrag(me:MouseEvent):void
            {
                theCoin.startDrag(false, new Rectangle(0,theCoin.y,5000,0));
                PCControl = false;
                timer.start();
            }

            private function endDrag(me:MouseEvent):void
            {
                theCoin.stopDrag();
                PCControl = true;
            }

            public function GravityCoinsMain()
            {



                theCoin = new Coin();
                addChild(theCoin);
                theCoin.x = stage.stageWidth / 2;
                theCoin.y = stage.stageHeight / 2;
                theCoin.addEventListener(MouseEvent.MOUSE_DOWN, beginDrag);
                theCoin.addEventListener(MouseEvent.MOUSE_UP, endDrag);

                timer.addEventListener(TimerEvent.TIMER, update);

            }
        }

    }

0 个答案:

没有答案