1

我遇到了这个非常奇怪的情况,我有这个栏,我向它添加了EventListener,所以当点击栏时,跟踪 localX

private function _barClicked($e:MouseEvent):void {
      trace($e.localX)
}

奇怪的是,当点击同一个点时,有时它会跳到一个错误的数字,我不知道为什么,我追踪了条的宽度,它是正确的值,localX 只是给我随机数字。有没有人遇到过这个问题?谢谢!

4

4 回答 4

6

嗯,奇怪

我尝试了一个简单的场景,我有一个名为“bar”的矩形并粘贴了 CLICK 事件的侦听器,然后尝试了 MOUSE_DOWN 事件。两者都工作得很好。我没有得到随机值。

我的猜测是您的 bar 剪辑包含其他对象,您可能会从 bar 的子项而不是 bar 本身获取值。虽然不确定,这只是一个猜测。

您可以尝试确保您的值来自 $e.currentTarget,因为 $e.target 可能会根据以下因素而改变:您的剪辑及其包含的子项数量、单击位置和事件阶段。

尝试

private function _barClicked($e:MouseEvent):void {
      trace($e.currentTarget.mouseX);
}

希望能帮助到你!

于 2009-08-23T10:21:28.993 回答
2

我遇到了同样的问题,上面评论中的Kevin Condon解决方案帮助了我的问题。我只是在这里发布它,因为我在评论中几乎错过了它。

private function _barClicked($e:MouseEvent):void {
     var coord:Point = $e.currentTarget.globalToLocal(new Point($e.stageX, $e.stageY));
     trace(coord.x);
}

谢谢凯文。

于 2010-02-09T04:33:33.273 回答
2

只是想为那些上面不起作用的人注意这个问题的变化。

我遇到了同样的问题 - localX 显示奇数​​值。我的不是随机的,只是远低于我的预期。即,单击精灵的最右侧,虽然宽度报告为 160,但仅获得 17.2 事件。

我发现我的实例是一个缩放版本的符号,其原生宽度要小得多。

一旦我将它设置为符号和实例具有相同的宽度,我就开始获得正确的值。

希望这可以帮助某人。

于 2010-09-16T17:18:43.307 回答
1

如果发现只要我使用Kevin Condon提出的解决方案,考虑到不同符号之间的缩放差异,一切都会正常进行。

于 2011-02-05T20:56:51.203 回答