PDA

Просмотр полной версии : проблема со скроллингом


neven
13.10.2008, 14:46
делаю сайт своей конторе -> http://www.yaltanet.com.ua
наткнулся на "вродебы пустячную" проблемку, но при ближайшем
рассмотрении результатов гугла, хелпа и святого тыка, понял что без
криков "хелп" не обойтись.
Как сделать чтобы mouseWheel над любым объектом скролил Application,
с заданной скоростью?

P.S. это мое первое творение во Flex, поэтому просьба не пинать если что. На форуме ответа не нашел

fljot
13.10.2008, 16:17
может аппликейшну добавить слушатель но mousewheel? причём для capture фазы и возможо даже сс каким-нибудь приоритетом

Air_mAn
13.10.2008, 16:24
Как сделать чтобы mouseWheel над любым объектом скролил Application, с заданной скоростью?

У объектов, которые наследуются от ScrollContorlBase (в вашем случае это какой-то текстовый компонент) надо переопределить протектный метод:

override protected function mouseWheelHandler(event:MouseEvent):void
{ //super не вызывать }
поскольку в этом методе, если у компонента присутствует вертикальный скроллбар, вызывается event.stopPropagation(), что останавливает событие, и до Application оно не доходит. Добавить свой обработчик для Application и там задать скорость.

neven
13.10.2008, 17:22
структура контейнеров такая

<application>
<applicationControllBar>
<SWFLoader, textInput, textInput, Button>
<panel id="contentConteiner">
<SWFLoader>
<panel lablel="Главное меню">
<linkButton>
...
<linkButton>
<panel label="Наши партнеры">
<image>
<linkButton>
...
<image>
<linkButton>
<viewStack>
<canvas>
<textArea>
<canvas>
<textArea>
<dataGrid>
<canvas>
<textArea>
<dataGrid>
<richTextEditor>
<button>
...


насколько я понял надо переопределять mouseWheelHandler у всех текстовых компонент, какие есть в панели contentConteiner?

Air_mAn
13.10.2008, 17:53
насколько я понял надо переопределять mouseWheelHandler у всех текстовых компонент, какие есть в панели contentConteiner? Да. Нужно отнаследоваться от textArea и помещать в Application свой компонент или его наследников.

neven
13.10.2008, 18:42
тогда походу прийдется делать чтото громоздко - универсальное
типа этого:

<local:textWithoutWheel type="area|RTF|input|...">...

neven
13.10.2008, 18:46
хотя нет - лучше для каждого такого контрола свой компонент создать без wheel
спасибо за совет :)