Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Горизональная прокрутка не работает для компонента List (http://www.flasher.ru/forum/showthread.php?t=120991)

vigor 04.02.2009 18:22

Горизональная прокрутка не работает для компонента List
 
Всем доброго времени суток.

Я использую List, информацию в него загружаю посредством добавления объектов к его дата провайдеру:

Код AS3:

 list.dataProvider.addItem({label:textHere});

Выводить листом мне нужно только текст. Он и выводится, но если текст шире чем сам лист, то он просто обрезается. Пробовал устанавливать horizontalScrollPolicy on и auto, но не помогло, при on скролл показывается - но не активен, при auto он не показывается...

Может кто подскажет как заставить текст выводится полностью (включить прокрутку)?

Добавлено через 4 часа 2 минуты
Люди, действительно нужна ваша помощь... Может я как-то неправильно добавляю информацию в List? Может есть иные варианты?

s8000_1 05.02.2009 01:08

Ну если не получается включить горизонтальный скролл у List, значит это не предусмотрено.
Используйте TileList с CellRenderer, а не ImageCell

vigor 05.02.2009 16:33

Спасибо за ответ.

По поводу прокрутки, она у них предусмотрена, в описании класса так и написано, мол если контент не влазит, то включается горизонтальная прокрутка, плюс есть свойства связанные с ней. Но это все фигня.

Я попытался сделать свой CellRenderer, делал все по адобовому мануалу и получилось следующее:
Код AS3:

import fl.controls.listClasses.CellRenderer;
import flash.text.TextFieldAutoSize;
 
class MyRenderer extends CellRenderer
{
        public function MyRenderer()
        {
                textField.autoSize = TextFieldAutoSize.LEFT;
        }
}

самому листу приклеиваю в стили:
Код AS3:

list.setStyle('cellRenderer', MyRenderer);

в дальнейшем, когда отрабатывает
Код AS3:

list.dataProvider.addItem({label:labelText});

валит следующий эксепшн
Код AS3:

TypeError: Error #2007: Parameter child must be non-null.
        at flash.display::DisplayObjectContainer/addChildAt()
        at fl.controls::BaseButton/drawBackground()
        at fl.controls::LabelButton/draw()
        at fl.core::UIComponent/drawNow()
        at fl.controls::List/drawList()
        at fl.controls::List/draw()
        at fl.core::UIComponent/callLaterDispatcher()

При это валится эксепш при добавлении дата провайдеру второго айтима...

Может кто знает с чем это связано?

Добавлено через 3 часа 50 минут
ыыы... неужели никто ничего не подскажет??? :(

Добавлено через 22 часа 22 минуты
Неужели никому не надо было использовать Лист и он не встречал, что лэйбл если он шире чем сам лист не включает полосу прокрутки? Долже же быть способ заставить это чудо работать...

Kuruki 16.06.2009 03:51

Цитата:

TypeError: Error #2007: Parameter child must be non-null.
at flash.display::DisplayObjectContainer/addChildAt()
at fl.controls::BaseButton/drawBackground()
at fl.controls::LabelButton/draw()
at fl.core::UIComponent/drawNow()
at fl.controls::List/drawList()
at fl.controls::List/draw()
at fl.core::UIComponent/callLaterDispatcher()
Столкнулся с такой же ошибкой. Тоже назначаю кастомный рендерер (который просто наследуется от CellRenderer и все, ничего своего не добавляет) и при добавлении элементов выводится такая ошибка :( . Причем, назначаю также свой рендерер в другом классе моего приложения - там все ок. Бред какой-то...

Помогите!!! :D


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

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