Происходит следующее: когда flash переходит к следующему кадру, обработчик событий Event.ENTER_FRAME все еще работает. И ожидает, что есть объект под названием «бцахир» со свойством y. Вы можете проверить это, добавив трассировку в свой метод changeFrame(), и вы должны увидеть, что она все еще трассируется, даже если она находится в следующем кадре.
Две вещи, которые вы могли бы сделать:
1.) измените свой обработчик событий (ваш метод changeframe()), чтобы он проверял и учитывал, когда «btsakhir» больше не существует в следующем кадре. Это может стать немного грязным и не рекомендуется в зависимости от того, как вы решите это сделать.
Or
2.) удалите прослушиватель событий, чтобы он вообще не запускался, когда вы переходите к следующему кадру. Если все, что делает метод changeframe(), это проверяет свойство y "btsakhir", то это, вероятно, лучший способ. Чтобы удалить прослушиватель событий, вы можете добавить:
this.removeEventListener(Event.ENTER_FRAME, changeframe);
Вы бы добавили его непосредственно перед вызовом nextFrame();
Конечно, если ваш объект «бцахир» должен существовать в следующем кадре (и является объектом на временной шкале/сцене), просто добавьте к нему кадры.
person
mitim
schedule
01.05.2013