![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Feb 2006
Сообщений: 580
|
При многократном открытии скроллера( зашел в скроллер - вышел, зашел - вышел) ускоряются все процессы связанные с прокруткой: прокрутка кнопками ускоряется, мышью тоже. А по задумке не должно быть такого. Может поглядите fla и скажете свои соображения?
test.rar К посту приложил файл в раре. В нем fla, swf, txt, html. Вобщем все, что может понадобится чтобы понять проблему. Версия флэш - 8. Работает так. Открываете. Перед вами пустое поле с кнопкой text. Щелкаете по нему. Появляется скроллер( поле с текстом). Доступна прокрутка мышью и кнопками вверх/вниз на клаве. Покрутите. Посмотрите скорость в первое открытие. Затем щелкните по кнопке back. Скроллер пропадет. Повторите все это раз 10. Посмотрите как изменилась скорость скролла как мышью, так и кнопками. Даже не знаю, что делать. В коде в fla я постарался все подробно расписать, что происходит, какая строка что делает. |
|
|||||
|
интервал /clearInterval(scrollFs)/ не очищается потому как scrollFs не видна из sc.butBck.onPress
определи scrollFs чтоб видно было и другим, типа |
|
|||||
|
Регистрация: 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. Еще раз спасибо за отклик. ![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 17:52. |
|
|
« Предыдущая тема | Следующая тема » |
|
|