Это неполная функция.Он возвращает графические объекты под мышью, а НЕ все потенциальные цели мыши для событий или взаимодействий.На самом деле требуется сложная логика для проверки массива, возвращенного getObjectsUnderPoint, чтобы определить цель мыши, потому что подходящей цели (одна Flash выберет, если вы действительно нажали эту точку) может не быть в списке.
Сначала выпришлось бы проверять массив объектов в обратном порядке, так как элементы упорядочены задом наперед.Вы должны изучить всю родительскую цепочку каждого объекта, ища родителя с mouseChildren = false, который заставил бы его перехватить событие и стать целью.Независимо от того, найден такой объект или нет, у этого конечного объекта, к которому вы пришли, должно быть установлено свойство true для свойства mouseEnabled, в противном случае вы должны пропустить его и перейти к следующему объекту в массиве, который будет, например, следующим спрайтом.или форма позади той, которую вы изначально проверили.Проходя по списку, вы должны заметить, когда меняется родитель, и в этот момент вы должны предположить, что у всех потомков этого общего родителя свойство mouseEnabled имеет значение false, и в этом случае родитель станет следующим кандидатом.На самом деле это чрезвычайно сложно, потому что вы работаете в обратном направлении снизу вверх с неполным набором объектов, созданным сверху вниз.
Чтобы получить реальные потенциальные цели событий мыши, в соответствии с логикой диспетчеризации по умолчанию ... на самом деле проще начать со сцены сверху вниз и пройти назад по иерархии отображения в глубину-сначалапоиск, проверка mouseChildren, чтобы определить, нужно ли вам вступать в дочерние процессы, и проверка mouseEnabled, если она является целью, в противном случае заходите в дочерние элементы контейнера и повторяйте процесс снова и снова.Это гораздо точнее, полнее и проще.Единственная проблема заключается в том, что вы должны сами ее кодировать.