Беспокойство о слушателе событий в AS3 - PullRequest
0 голосов
/ 28 августа 2018

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

Проблема:
В моей игре будет около 300 слушателей событий, волнуюсь, повлияет ли это на мою игру?

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

Ну, вы очень расплывчаты в отношении того типа слушателей событий, которые вы используете, если они являются энтерфреймами, это может быть проблемой, попробуйте не использовать энтерфреймы на объектах и ​​использовать их на сцене, но если вы используете 300.

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

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

0 голосов
/ 30 августа 2018

Да, это повлияет на вашу игру, в первую очередь потому, что вам нужно будет контролировать все 300, чтобы они не создавали утечек памяти в виде более неактивных (освобожденных) объектов, оставшихся в памяти, потому что к ним прикреплен слушатель, чтобы сказать stage , Вторичный аспект - это производительность, каждый слушатель, выполняющий действия, находится на несколько вызовов функций под занавесом, поэтому лучше как-то организовать этих слушателей. Хорошо, если кнопка прослушивает себя, скажем, MouseEvent.CLICK, и имеет 300 таких кнопок, потому что каждый раз, когда вы нажимаете, реагирует только несколько (в идеале, одна) слушателей. Не так хорошо, когда 300 слушателей слушают Event.ENTER_FRAME, потому что каждый из них будет вызываться для каждого кадра, и вместо этого лучше иметь одного слушателя, но каждая подсистема или каждый объект будет вызываться из этого слушателя. Этот подход также уменьшит накладные расходы на подсистему событий Flash для прямых вызовов и уменьшит ваши хлопоты по поводу неприсоединенных слушателей.

Может быть больше аспектов производительности в отношении слушателей, особенно с учетом того, что разработчики Flash-движка начали размещать проверки безопасности в движке, значительно замедляя обработку событий, однако они неясны, и единственное, что о них известно, это «используйте меньше слушателей» ». Вам все равно придется полагаться на цикл событий Flash, по крайней мере, на верхнем уровне, даже если вы разрабатываете собственную систему обработки событий или используете систему, созданную другим, но главное - «чем меньше, тем лучше» , Если вы можете уменьшить количество слушателей , сделайте это.

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