Как я могу вручную отправить MouseEvent?

#flash #actionscript-3

#flash #actionscript-3

Вопрос:

У меня есть меню, созданное с использованием собственного класса AS3, при нажатии на ссылку в этом меню запускается функция в соответствии с некоторыми переменными, переданными из внешнего XML-файла.

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

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

Имеет ли это какой-либо смысл? Возможно ли это вообще? Я рву на себе волосы, пытаясь придумать обходной путь, но я должен признать, что я относительно новичок в ООП и немного теряюсь, когда дело доходит до передачи переменных, не говоря уже о передаче их между классами!

Ответ №1:

 buttonToTarget.addEventListener(MouseEvent.CLICK, doThisFunction, false, 0, true);

buttonToTarget.dispatchEvent(new MouseEvent(MouseEvent.CLICK));
  

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

Ответ №2:

если вы хотите вызвать MouseEvent.MOUSE_DOWN событие для видеоролика в меню, вы можете сделать это напрямую:

  path.to.parentButton.dispatchEvent(new MouseEvent(MouseEvent.MOUSE_DOWN, true, false, localX,localY));
  

Вы можете опустить localX и localY, если получатель события никогда не проверяет его.