Игнорировать фокус мыши на подсказке? - PullRequest
0 голосов
/ 27 сентября 2011

Я создал нечто, что работает как всплывающая подсказка в моем приложении Flex. Когда я переворачиваю средство визуализации определенного элемента, я открываю новый элемент управления, позиционирую его и удаляю при развертывании. Порядок операций такой:

  1. Сработал обработчик события пролонгации.
  2. Добавьте всплывающую подсказку в this.systemManager.topLevelSystemManager.toolTipChildren.
  3. При создании моей всплывающей подсказки установите x, установите координаты y для всплывающей подсказки (при завершении, чтобы ширина и высота рассчитывались, поскольку они являются динамическими). ​​
  4. Сработал обработчик события развертывания.
  5. Удалить подсказку.

Это работало нормально, когда я установил координаты x и y равными x + 10, y + 10 от текущей позиции мыши. Я хотел добавить что-то, что переместило подсказку, если она собиралась быть частично за кадром. Я добавил шаг, который вычислял бы, будет ли он выведен за пределы экрана, и переместил всплывающую подсказку, если она будет обрезана.

Проблема с моим решением, похоже, заключается в том, что теперь он работает в бесконечном цикле перерисовок, так как добавление всплывающей подсказки на экран под мышью вызывает «rollOut» в средстве визуализации элементов. Это инициирует удаление всплывающей подсказки и запускает процесс заново с 1.

Так что я предполагаю, что мой вопрос: есть ли способ игнорировать всплывающую подсказку, чтобы она не отвлекала фокус мыши от средства визуализации элементов, которое сейчас находится под ним? Или есть другие хорошие решения? Заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 27 сентября 2011

Вероятно, следовало бы поискать немного больше, прежде чем отправлять этот вопрос. Для всех, кто ищет, мне просто нужно установить параметры mouseEnabled=false и mouseChildren=false в моей подсказке.

0 голосов
/ 27 сентября 2011

Я бы проверил свойства currentTarget и target ваших событий, чтобы узнать, кто их отправил.

0 голосов
/ 27 сентября 2011

Один из способов - убедиться, что нарисованная подсказка также не попадает под мышь.

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

Таким образом, всплывающая подсказка исчезнет, ​​только если мышь покинет ОБА DisplayObject, который вызывает подсказку И подсказку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...