Вопрос

Я столкнулся с этой действительно странной ситуацией, у меня есть этот бар, и я добавлю к нему, поэтому, когда нажимается в баре, следуйте Localx

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

Странно то, что при щелчке в том же месте, иногда это прыгает к неправильному числу, который я не могу понять, почему, я проследил ширину бара, и это правильное значение, Localx просто дает мне случайное числаКто-нибудь когда-нибудь сталкивался с этой проблемой?Спасибо!

Это было полезно?

Решение

Хм, странно

Я попробовал простой сценарий, в котором у меня есть прямоугольник с именем «bar», и я вставил прослушиватель события CLICK, а затем попробовал событие MOUSE_DOWN.Оба работали нормально.Я не получил случайных значений.

Я предполагаю, что ваш клип-бар содержит внутри другие объекты, и вы можете получить значения от дочерних элементов бара, а не от самого бара.Хотя не уверен, это всего лишь предположение.

Вы можете попытаться убедиться, что ваши значения поступают из $e.currentTarget, поскольку $e.target может измениться в зависимости от:ваш клип и количество дочерних элементов, положение щелчка и фазу события.

Пытаться

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

Надеюсь, поможет!

Другие советы

У меня была такая же проблема, и Кевин Кондон решение из комментария выше помогло моей проблеме.Я просто публикую это здесь, потому что чуть не пропустил это в комментарии.

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

Спасибо, Кевин.

Просто хотел отметить вариант этой проблемы для тех, у кого вышеописанное не работает.

У меня была та же проблема: localX показывал нечетные значения.Мои результаты были не случайными, просто они были намного ниже, чем я ожидал.То есть щелкните крайнюю правую часть спрайта и получите только 17,2, хотя ширина была равна 160.

Я обнаружил, что мой экземпляр представлял собой масштабированную версию символа, исходная ширина которого была намного меньше.

Как только я настроил так, чтобы символ и экземпляр имели одинаковую ширину, я начал получать правильные значения.

Надеюсь, это кому-то поможет.

Если обнаружится, что пока я использую решение, которое Кевин Кондон предлагаемые различия в масштабировании между разными символами принимаются во внимание, и все работает нормально.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top