这是我的代码:
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(因为它是只读的,所以不能更改),此对象中没有任何其他代码,因为我刚开始使用这个项目。
谢谢。
答案 0 :(得分:4)
看起来你的mouseX基于拥有你正在设置的'x'属性的剪辑。当您经常将x设置为mouseX时,这将更改光标相对于剪辑的位置。这就是它在两个值之间振荡的原因。
修复:尝试使用父剪辑获取鼠标位置,然后根据需要更改子剪辑的位置。即:_parent.mouseX而不是mouseX