Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   конфликтуют скроллинг у TextField и ScrollPane (http://www.flasher.ru/forum/showthread.php?t=78035)

olegn 07.04.2006 14:06

конфликтуют скроллинг у TextField и ScrollPane
 
Добрый день. Вот такая задача:
у меня внутри компонента ScrollPane образуется несколько TextField. Я могу включить некий режим, когда их type становится input. Далее я редактирую имеющийся в них текст, в том числе добавляю новый.
Проблема:когда я работаю с текстом внутри этого поля и использую колесико мыши для прокрутки текста, у меня также начинает работать и скроллинг ScrollPane. А я этого не хочу :( , мне нужно, чтобы в режиме редактирования полей скроллинг ScrollPane не отзывался на колесико мыши. И наоборот, когда я программно выполняю выход из этого режима редактирования, то ScrollPane начинает "чувствовать" колесико.
Я пробовал "в лоб", а именно: устанавливал для ScrollPane
Код:

my_sp.vScrollPolicy="off"
при входе в режим редактирования и
Код:

my_sp.vScrollPolicy="auto"
обратно.
Но работает корректно, только если на момент входа в редактирование скроллинг у ScrollPane имеет позицию 0, т.е. не задействуется. Если же для достижения редактируемого текстового поля нужно "добираться" скроллингом, то этот подход глючит конкретно.
Резюмирую свой вопрос так, чтобы его решение можно было использовать в любых ситуациях:
Как отключать и включать в режиме runtime чувствительность к колесику мыши у компонента ScrollPane, при этом не удаляя сам движок прокрутки из ScrollPane?

olegn 07.04.2006 15:03

Ау, кто-нибудь?

MIX-er 07.04.2006 15:35

на сколько я понял те нужно обновлять контент в скролл пейне...

почитай в хелпе там прекрасные примеры есть...

KPaul 07.04.2006 18:05

Один из вариантов расширить ScrollPane и добавить интерфейс по блокированию/разблокированию колеса. Там он вроде реализован евент листенером. Короче, если расширить, то можно делать по разному...

olegn 07.04.2006 18:19

Цитата:

Сообщение от MIX-er
на сколько я понял те нужно обновлять контент в скролл пейне...

почитай в хелпе там прекрасные примеры есть...

:yahoo: Про help спасибо. Только это не моя проблема - обновлять контент в ScrollPane. Ничего мне не нужно обновлять. Мне хочется прокручивать колесиком текст в текстовом поле, чтобы при этом не прокручивалось ScrollPane! :eek:

olegn 07.04.2006 18:21

To KPaul: Прежде всего спасибо, что откликнулся. Да, это верный вариант. Только я не знаю, как расширять компоненты версии 2.0, которые используются в Flash8. Ранее было просто, открываешь код компонента, и все ок. Но тут ведь компоненты уже как скомпилированные клипы в библиотеке присутствуют, их не откроешь?

KPaul 07.04.2006 19:29

Тут ты не прав, все фла компонентов находятся примерно здесь: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 файл с этим компонентом.

olegn 07.04.2006 19:40

Да, спасибо. Хороший вариант. Буду пробовать.
А чтобы перегрузить внутренний метод компонента, надо знать, как он называется:)
Это трассировкой узнавать?

KPaul 07.04.2006 19:47

:))) Зачем трассировка, если все классы у тебя на машине?
Открой класс ScrollPane и посмтри что там и к чему, на самом деле ничего сверхестественного. Ну и напоследок - пакет MM классов примерно здесь:C:\Documents and Settings\Твоё имя на машине\Local Settings\Application Data\Macromedia\Flash 8\en\Configuration\Classes\mx

olegn 07.04.2006 19:49

спасибо
 
Да, верно. Пора на сегодня отдохнуть. :confused:
Еще раз спасибо.


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

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