![]() |
конфликтуют скроллинг у TextField и ScrollPane
Добрый день. Вот такая задача:
у меня внутри компонента ScrollPane образуется несколько TextField. Я могу включить некий режим, когда их type становится input. Далее я редактирую имеющийся в них текст, в том числе добавляю новый. Проблема:когда я работаю с текстом внутри этого поля и использую колесико мыши для прокрутки текста, у меня также начинает работать и скроллинг ScrollPane. А я этого не хочу :( , мне нужно, чтобы в режиме редактирования полей скроллинг ScrollPane не отзывался на колесико мыши. И наоборот, когда я программно выполняю выход из этого режима редактирования, то ScrollPane начинает "чувствовать" колесико. Я пробовал "в лоб", а именно: устанавливал для ScrollPane Код:
my_sp.vScrollPolicy="off"Код:
my_sp.vScrollPolicy="auto"Но работает корректно, только если на момент входа в редактирование скроллинг у ScrollPane имеет позицию 0, т.е. не задействуется. Если же для достижения редактируемого текстового поля нужно "добираться" скроллингом, то этот подход глючит конкретно. Резюмирую свой вопрос так, чтобы его решение можно было использовать в любых ситуациях: Как отключать и включать в режиме runtime чувствительность к колесику мыши у компонента ScrollPane, при этом не удаляя сам движок прокрутки из ScrollPane? |
Ау, кто-нибудь?
|
на сколько я понял те нужно обновлять контент в скролл пейне...
почитай в хелпе там прекрасные примеры есть... |
Один из вариантов расширить ScrollPane и добавить интерфейс по блокированию/разблокированию колеса. Там он вроде реализован евент листенером. Короче, если расширить, то можно делать по разному...
|
Цитата:
|
To KPaul: Прежде всего спасибо, что откликнулся. Да, это верный вариант. Только я не знаю, как расширять компоненты версии 2.0, которые используются в Flash8. Ранее было просто, открываешь код компонента, и все ок. Но тут ведь компоненты уже как скомпилированные клипы в библиотеке присутствуют, их не откроешь?
|
Тут ты не прав, все фла компонентов находятся примерно здесь:C:\Program Files\Macromedia\Flash 8\en\Configuration\ComponentFLA
Я бы сделал так: 1. Скопировал бы оригинальный фла куда-нибудь или туда же с другим именем. 2. Продублировал компонент ScrollPane в либе. 3. Написал бы для начала пустой класс типа ScrollPaneExtended и изменил linkage и component definition в контектном меню продублированного символа в либе, вставляя путь к классу. 4. Затем, внутри этого символа на ВТОРОМ кадре создал бы пустой клип и установил для него только галочку Export for ActionScript в linkage и указал путь к классу оригинального ScrollPane. Для того чтобы при компиляции он был включен в символ, для корректного расширения. 5. Из контекстного меню выбрал бы Convert to Compiled Clip. И получил скомпилиный мувик который можно перетаскивать куда угодно и юзать. Вроде все... :) Если все корректно в трэйсе ничего не появится. Теперь можно играться с ScrollPaneExtended, перегружая любые методы, добавляя новые... ps можно также создать внешний swc файл с этим компонентом. |
Да, спасибо. Хороший вариант. Буду пробовать.
А чтобы перегрузить внутренний метод компонента, надо знать, как он называется:) Это трассировкой узнавать? |
:))) Зачем трассировка, если все классы у тебя на машине?
Открой класс ScrollPane и посмтри что там и к чему, на самом деле ничего сверхестественного. Ну и напоследок - пакет MM классов примерно здесь:C:\Documents and Settings\Твоё имя на машине\Local Settings\Application Data\Macromedia\Flash 8\en\Configuration\Classes\mx |
спасибо
Да, верно. Пора на сегодня отдохнуть. :confused:
Еще раз спасибо. |
| Часовой пояс GMT +4, время: 22:23. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.