AS3:Camera-Drag正在抽搐

时间:2013-08-08 07:35:02

标签: actionscript-3 flash actionscript air drag

我有一个很大的问题,因为我需要通过将鼠标(手指放在手机上)移动到您想要的位置来移动相机。

代码本身工作正常,但我在拖动时有一个糟糕的抽搐。

我的代码:

if(_drag)
        {
            var mousePos:Point = new Point(_gameRef._stage.mouseX, _gameRef._stage.mouseY);
            var localPos:Point = _gameRef.MainElement.globalToLocal(mousePos);

            var diffX:Number = MathHelper.Difference(_prevMPosX, localPos.x);
            var diffY:Number = MathHelper.Difference(_prevMPosY, localPos.y);

            // Add the position changes for the camera
            if(localPos.x < _prevMPosX)
                _gameRef.CamController.x += diffX;
            if(localPos.x > _prevMPosX)
                _gameRef.CamController.x -= diffX;
            if(localPos.y < _prevMPosY)
                _gameRef.CamController.y += diffY;
            if(localPos.y > _prevMPosY)
                _gameRef.CamController.y -= diffY;

            // change the previous mouse position to the current
           _prevMPosX = localPos.x;
           _prevMPosY = localPos.y;

            e.updateAfterEvent();
        }

有趣的是,当我将+更改为 - 然后相反时,它可以在没有抽搐的情况下工作(但它感觉不自然,所以它不是我的问题的解决方案。)

非常感谢!

1 个答案:

答案 0 :(得分:0)

好吧,错误是使用本地坐标。

不,我已经从我的全球舞台坐标中获得了所有依赖,并且它没有任何抽搐!