Показать сообщение отдельно
Старый 25.07.2006, 21:37
pkfun вне форума Посмотреть профиль Отправить личное сообщение для pkfun Посетить домашнюю страницу pkfun Найти все сообщения от pkfun
  № 3  
Ответить с цитированием
pkfun

Регистрация: Feb 2006
Сообщений: 580
silin
Спасибо. Действительно цикл не останавливался. Все сделал как ты сказал. Теперь останавливается.
В связи с этим хотел еще спросить. clearInterval, как я понял, не трэйсится. Как правильно проверять его остановку? Я вставлял в функцию, которую запускал setInterval, какой-нибудь трэйс(trace("work"), напр.) и смотрел когда функция работает, а когда нет. Еще есть какие-нибудь способы?
Далее. Насчет ускорения я тоже разобрался. Прежде всего почитал в help flash 8 про оператор delete. Вот, что там написано(относительно моего случая):

You cannot delete predefined objects and properties, and you cannot delete variables that are declared within a function with the var statement. You cannot use the delete operator to remove movie clips.

Ну а я удалял листенеры, которые были определены внутри функции(onLoad). Они, естественно, не удалялись. И при повторном запуске функции scrollF появлялись новые объекты, слушающие события кнопок и мыши и работали эти объекты все вместе. Т.е. один раз жму на кнопку, события слушает уже, напр. 3 объекта и каждый из них срабатывает.
Когда я это понял, то сразу нашел и использовал метод removeListener. Еще раз проверил трэйсами, вставленными в функции keyLs.onKeyDown и mouseListener.onMouseWheel. Все нормально.

test.rar

Приложил к посту исправленный код. Погляди, если будет желание, может какие еще недочеты есть.
ps. Еще раз спасибо за отклик.