ShadeSlider
22.05.2008, 14:18
Добрый день!
Есть следующая проблема:
В проекте есть скроллпейн, в качестве контента указан пустой мувклип из библиотеки, в который динамически аттачится один и тот же мувклип, так же из библиотеки, в зависимости от пришедших их 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(), не помогло.
Облазил кучу форумов, отечественных и не только, и, разумеется, мануал, сложилось ощущение, что с подобной проблемой никто не сталкивался.
Если кто-то сможет помочь, буду невероятно признателен.
Заранее благодарю.
Есть следующая проблема:
В проекте есть скроллпейн, в качестве контента указан пустой мувклип из библиотеки, в который динамически аттачится один и тот же мувклип, так же из библиотеки, в зависимости от пришедших их 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(), не помогло.
Облазил кучу форумов, отечественных и не только, и, разумеется, мануал, сложилось ощущение, что с подобной проблемой никто не сталкивался.
Если кто-то сможет помочь, буду невероятно признателен.
Заранее благодарю.