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

Вернуться   Форум Flasher.ru > Flash > Flex

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

Регистрация: Aug 2009
Сообщений: 23
По умолчанию Horizontal Scroll in ADG

Добрый день!

Есть пользовательское дерево, которое наследовано не от mx.tree, а от mx.AdvancedDataGrid. Т.е. фактически, это ADG с одной колонкой. Вопрос - реально ли как-то сделать в нем горизонтальный скролл, кроме, как положить его в контейнер и добавить отдельный скроллер.
Т.е. меня интересует именно возможность как-то перехватить логику скроллирования по колонкам и переписать ее, это вообще реально?

Спасибо за внимание.

Старый 15.02.2012, 19:16
Genzo вне форума Посмотреть профиль Отправить личное сообщение для Genzo Посетить домашнюю страницу Genzo Найти все сообщения от Genzo
  № 2  
Ответить с цитированием
Genzo
 
Аватар для Genzo

блогер
Регистрация: Feb 2010
Адрес: MSK
Сообщений: 859
Записей в блоге: 3
Отправить сообщение для Genzo с помощью ICQ Отправить сообщение для Genzo с помощью Skype™
http://help.adobe.com/en_US/flex/usi...4deb0ca54-7fff
__________________
Gamedev != Gaming (http://twitter.com/#!/GenzoDev). Don't forget to [+] if it works.

Старый 15.02.2012, 19:46
OFFmind вне форума Посмотреть профиль Отправить личное сообщение для OFFmind Найти все сообщения от OFFmind
  № 3  
Ответить с цитированием
OFFmind

Регистрация: Aug 2009
Сообщений: 23
Хм, так это же itemRenderer. Я не совсем понял, как это использовать для решения моей задачи. Если добавить в него скролл, то он добавиться к каждому элементу, а не один на весь столбик. Да, у меня как раз используется кастомный спарковский рендерер. Я даже смог посчитать его ширину. Но когда я пытаюсь дереву поставить horizontalMaxPosition = ширина самого большого элемента, скролл все равно остается не активным.

Спасибо за внимание и буду рад ответам)


Последний раз редактировалось OFFmind; 15.02.2012 в 19:49.
Старый 15.02.2012, 23:52
droopy вне форума Посмотреть профиль Отправить личное сообщение для droopy Найти все сообщения от droopy
  № 4  
Ответить с цитированием
droopy

Регистрация: Dec 2011
Сообщений: 9
Сделать колонку шире чем ADG и выставить horizontalScrollPolicy.

Старый 16.02.2012, 14:12
OFFmind вне форума Посмотреть профиль Отправить личное сообщение для OFFmind Найти все сообщения от OFFmind
  № 5  
Ответить с цитированием
OFFmind

Регистрация: Aug 2009
Сообщений: 23
Проблема в том, что mx:ADG не позволяет скролить внутри колонки. Он скролит только по колонкам. Так что метод с выставлением ширины колонки не сработает.
Все таки в интернетах я нашел то что искал. А именно: как переопределить логику скроллирования. Грубо говоря, можно сделать примерно так:

Код AS3:
override protected function scrollHandler(event:Event):void
        {           
            // Переопределяем логику для скролл эвента:
            var scrEvt:ScrollEvent = event as ScrollEvent;
            if(scrEvt.direction == ScrollEventDirection.HORIZONTAL) {
                // Берем части горизонтального скрола:
                var scrDownArrow:DisplayObject = horizontalScrollBar.getChildAt(3);
                var sctThumb:DisplayObject = horizontalScrollBar.getChildAt(2);     
                var hPos:Number = Math.round((sctThumb.y - scrDownArrow.height) / (scrDownArrow.y - sctThumb.height - scrDownArrow.height) * 1000);     
 
                // Двигаем контент нашего ADG
                listContent.move(hPos * -1, listContent.y);
            }
            // Ничего не делаем, если скрол вертикальный:
            else {
                super.scrollHandler(event);
            }
        }
Но есть вопрос: почему-то текст, который был за рамками ADG не отображается. Я уже пытался и listContent.invalidateDisplayList() и commitProperties(). Может есть идеи?

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

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

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


 


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


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