Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 23.07.2006, 22:41
pkfun вне форума Посмотреть профиль Отправить личное сообщение для pkfun Посетить домашнюю страницу pkfun Найти все сообщения от pkfun
  № 1  
Ответить с цитированием
pkfun

Регистрация: Feb 2006
Сообщений: 580
По умолчанию Скроллер ускоряется не понятно почему.

При многократном открытии скроллера( зашел в скроллер - вышел, зашел - вышел) ускоряются все процессы связанные с прокруткой: прокрутка кнопками ускоряется, мышью тоже. А по задумке не должно быть такого. Может поглядите fla и скажете свои соображения?

test.rar

К посту приложил файл в раре. В нем fla, swf, txt, html. Вобщем все, что может понадобится чтобы понять проблему. Версия флэш - 8.
Работает так. Открываете. Перед вами пустое поле с кнопкой text. Щелкаете по нему. Появляется скроллер( поле с текстом). Доступна прокрутка мышью и кнопками вверх/вниз на клаве. Покрутите. Посмотрите скорость в первое открытие. Затем щелкните по кнопке back. Скроллер пропадет. Повторите все это раз 10. Посмотрите как изменилась скорость скролла как мышью, так и кнопками. Даже не знаю, что делать.
В коде в fla я постарался все подробно расписать, что происходит, какая строка что делает.

Старый 23.07.2006, 23:06
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 2  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
интервал /clearInterval(scrollFs)/ не очищается потому как scrollFs не видна из sc.butBck.onPress
определи scrollFs чтоб видно было и другим, типа
Код:
var scrollFs;//будет видна и в др. функуциях
textLoader.onLoad = function():Void  {
	.........
	//var scrollFs = setInterval(scrollFns, 5);//локальная переменная, снаружи не видна
	scrollFs = setInterval(scrollFns, 5);//
		
};

Старый 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. Еще раз спасибо за отклик.

Создать новую тему Ответ Часовой пояс GMT +4, время: 17:59.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 17:59.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.