当光标静止时,MouseX值会发生变化

时间:2012-02-01 03:03:59

标签: flash actionscript-3 actionscript flash-cs5

这是我的代码:

public function update()
    {
        //making the character follow the mouse
        if(mouseX > (x + 25))
        { //if the mouse is to the right of mcMain
            x += mainSpeed;//move mcMain to the right
        }
        else if (mouseX < (x - 25))
        {//same thing with the left side
            x -= mainSpeed;
        }
        else
        {
            trace(x + " and " + mouseX);
            x = mouseX;//if it's close enough, then make it the same x  value
        }
    }

由于某些未知原因,即使光标仍然存在(意味着对象闪烁),mouseX和此对象的c也会更改值

当我将光标保持静止时,这是跟踪:

84 and 80
80 and 84
84 and 80
80 and 84
84 and 80
80 and 84
84 and 80

我没有更改mouseX(因为它是只读的,所以不能更改),此对象中没有任何其他代码,因为我刚开始使用这个项目。

谢谢。

1 个答案:

答案 0 :(得分:4)

看起来你的mouseX基于拥有你正在设置的'x'属性的剪辑。当您经常将x设置为mouseX时,这将更改光标相对于剪辑的位置。这就是它在两个值之间振荡的原因。

修复:尝试使用父剪辑获取鼠标位置,然后根据需要更改子剪辑的位置。即:_parent.mouseX而不是mouseX