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

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

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

Регистрация: May 2008
Сообщений: 6
По умолчанию ScrollPane, разсинхоризация с контентом при "быстром" скроллинге.

Добрый день!
Есть следующая проблема:
В проекте есть скроллпейн, в качестве контента указан пустой мувклип из библиотеки, в который динамически аттачится один и тот же мувклип, так же из библиотеки, в зависимости от пришедших их XML данных, формируя таким образом список.
Мувклип, служащий элементом списка, содержит в себе 2 динамических поля, которые являются ссылками, и которые модифицируются так же на основе пришедших из XML данных.

Ниже привожу код этого безобразия:

Код:
function initRatedFilmlist() {
	scrollPaneRated.setStyle("borderStyle", "none");
	scrollPaneRated.contentPath = "ScrollPaneClip";
	ScrollPaneContent = scrollPaneRated.content;
	for (i=0; i<RatedFilmsList.length; i++) {

		RatedFilm = ScrollPaneContent.attachMovie("RatedFilmItem", "RatedFilm_"+RatedFilmsList[i].id, ScrollPaneContent.getNextHighestDepth(), {_y:38*i+8, _x:135, FilmID:RatedFilmsList[i].id});

		/*
		Rendering FilmItem
		*/
		var FilmNameFormat:TextFormat = new TextFormat();
		FilmNameFormat.url = RatedFilmsList[i].url;
		FilmNameFormat.target = "_blank";

		RatedFilm.FilmName.text = RatedFilmsList[i].name;
		RatedFilm.FilmName.setTextFormat(FilmNameFormat);
		
		FilmNameFormat.url = RatedFilmsList[i].director_url;
		RatedFilm.FilmDirector.text = RatedFilmsList[i].director+", "+RatedFilmsList[i].date;
		RatedFilm.FilmDirector.setTextFormat(FilmNameFormat);

	
	}
	scrollPaneRated.invalidate();

}
Все работает идеально, все аттачится, все скроллится, ссылки работают корректно...
НО! Если начать скролить "резко" и "быстро" происходит разсинхронизация контента и скроллбаров, причем не визуальная.
Т.е. визуально, все скроллится правильно, но области скроллпейна, отвечающие за ссылки, как бы отпечатываются в одном состоянии и не реагируются на скролл. Получается, что после "быстро го и резкого" скроллинга ссылки начинают вести вовсе не туда, куда требуется.

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

Пробовал invalidate() в on(scroll) и даже в setInterval(), не помогло.
Облазил кучу форумов, отечественных и не только, и, разумеется, мануал, сложилось ощущение, что с подобной проблемой никто не сталкивался.

Если кто-то сможет помочь, буду невероятно признателен.
Заранее благодарю.

Старый 22.05.2008, 19:32
ShadeSlider вне форума Посмотреть профиль Отправить личное сообщение для ShadeSlider Найти все сообщения от ShadeSlider
  № 2  
Ответить с цитированием
ShadeSlider

Регистрация: May 2008
Сообщений: 6
После долгих мытарств обнаружил, что проблема наблюдается, только если при скролллинге приложение теряет фокус, т.е. мышь, удерживающая скролл, выходит за границы приложения.
Т.е., фактически, происходит FocusOut.

По всей видимости, нужно каким-то образом вернуть скроллпейну фокус и заставить его перерисоваться.

У кого-нибудь есть идеи?

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

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

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


 


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


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