![]() |
Скролл TextField
Есть текстовое поле, тип INPUT и про вводе текста большего чем сам TextField хотелось бы чтобы появлялся скролл по вертикали автоматически. При углублении в тему выход нашел через casheAsBitmap и rectangle, но может есть выход попроще?
|
textHeight*numLines = высота текстового поля для плавной прокрутки. Маска к тексту и скрол - всё, что тебе нужно. Или скролить тектовое поле через scrollV. Число строк которое мы видим = bottomScrollV - scrollV, сравнивая с количеством строк numLines можем также определить скролл.
|
Вы меня не так поняли. Мы имеем поля для ввода текста определённого размера, пользователь вводит текст и объем текста не помещается в это поле, так вот я хотел чтобы когда верхние строки начнут уходить за поле, автоматически появлялся вертикальный скролинг. Подобие ScrollPane.
|
Цитата:
|
добавить компоненту UIScrollBar к текстовому полю
и описать его: Код AS3:
|
Столкнулась с похожей проблемой. Надо прицепить скроллбар к динамическому текстовому полю.
Прочитала тут и про UIScrollBar, решила попробовать, но не выходит. Пишу на AS3. Компилирую через Flash CS3 , а код пишу во Flexe. Flex не видит библиотеки fl.controls.UIScrollBar. Как быть? Может какую-то библиотеку подключить? Пыталась написать скроллбар сама. Смотрела в примерах, везде используется маска. То есть просто средствами текстового поля проскролить текст на указанное число строк нельзя? |
Если есть Флеш - положите компонент скроллбара в отдельный файл, скомпилируйте его в SWC и подключите библиотеку к проекту.
Если Флеша нету, но вы пользуетесь Флексовым фреймворком - во Флексе есть свой скроллбар: http://livedocs.adobe.com/flex/3/lan...ScrollBar.html Если ни то и ни дрогое и у самой не получается написать: http://code.google.com/p/e4xu/source...ui/Scroller.as http://e4xu.googlecode.com/files/scrollertest.zip можете взять за основу или прямо так и использовать. |
Спасибо.
Почти получилось написать свой скроллбар: устанавливаю text_field.scrollV в значение, которое соответствует текущему положения ползунка. Правда в этом случае пришлось отказаться от скроллинга колесиком мыши. Либо колесиком текстовое поле само себя скролит (и скроллбар в соответствии двигает ползунок), либо если используется полоса скроллбар, то на колесико не реагируем. Во что вышло (пока без кнопок, ползунок - тоже самостоятельно написанная кнопка) Код AS3:
|
А зачем лишняя работа если есть компонента TextArea? Вполне удобно. И скроллбар сама показывает и вид нормальный. Были проблемы со шрифтами, но я разобрался. на адобе дурацкий пример настройки выложили... как будто специально не хотят учить 8)
|
Опять же Flex не знает, что такое fl.controls.TextArea :( То есть надо его как-то отдельно присоединять к проекту + скроллбар нужно скинить.
А так вышло неплохое упражнение по написанию собственных контролов :) |
По поводу destoy()
можно просто проверить willTrigger() не нужно там try-catch. И имена свойств с маленькой буквы... И позицию клипу лучше назначать 1 раз а не назначил-проверил-переназначил т.как вопервых это долго (двигать клип по экрану) во вторых рассчеты будут неточными т.как вы будете работать с сеттерами / геттерами клипа которые не хранят присвоеную позицию а пересчитывают ее, ну и кроме того, лучше, чтобы передвижение было организовано только в одной функции - так другим контролам легче будет взаимодействовать со скроллером. может и еще чего, недосмотрел... |
Спасибо за замечания, будем исправляться :)
try-catch для кнопок, так как внутри кнопки к ним добавляю обработчики событий MOUSE_DOWN и MOUSE_UP для отображения состояний и в самом скроллинге еще обработчики на те же события могут быть добавлены, поэтому willTrigger() может давать тру, только вот листенер другой будет. Поэтому решила перестраховаться |
removeEventListener не вызывает эксепшена.
|
| Часовой пояс GMT +4, время: 15:45. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.