我遇到了这个非常奇怪的情况,我有这个吧和我addEventListener,所以当 单击该栏,跟踪localX
private function _barClicked($e:MouseEvent):void {
trace($e.localX)
}
奇怪的是,当点击同一地点时,有时会跳到错误的数字 我无法弄清楚为什么,我追踪了条的宽度,这是正确的值,localX是 只是给我随机数字。有没有人遇到过这个问题?谢谢!
答案 0 :(得分:6)
我尝试过一个简单的场景,我有一个名为'bar'的矩形并粘贴了CLICK事件的监听器,然后尝试了MOUSE_DOWN事件。两者都很好。 我没有得到随机值。
我的猜测是你的酒吧剪辑里面包含其他物品,你可能会从酒吧的孩子那里获得价值,而不是酒吧本身。但不确定,这只是猜测。
您可以尝试确保您的值来自$ e.currentTarget,因为$ e.target可能会更改,具体取决于:您的剪辑及其拥有的子项数,点击位置和事件阶段。
尝试
private function _barClicked($e:MouseEvent):void {
trace($e.currentTarget.mouseX);
}
希望它有所帮助!
答案 1 :(得分:2)
我遇到了同样的问题,上面评论中的Kevin Condon解决方案帮我解决了问题。我只是在这里发帖,因为我在评论中几乎错过了它。
private function _barClicked($e:MouseEvent):void {
var coord:Point = $e.currentTarget.globalToLocal(new Point($e.stageX, $e.stageY));
trace(coord.x);
}
谢谢凯文。
答案 2 :(得分:2)
只是想为那些不能正常工作的人注意这个问题的变化。
我遇到了同样的问题 - localX显示奇数值。我不是随意的,远远低于我的预期。即,点击精灵的最右边,只获得17.2,虽然宽度报告为160。
我发现我的实例是符号的缩放版本,其原生宽度要小得多。
一旦我设置它以使符号和实例具有相同的宽度,我就开始获得正确的值。
希望这有助于某人。
答案 3 :(得分:1)
如果发现只要我使用Kevin Condon提出的不同符号之间的比例差异的解决方案,并且一切正常。