Answered
Disabling mouse wheel scrolling on a TextArea?
I'm pretty familiar with Actionscript, and this one has me
completely stumped. What I'm trying to do is to prevent people from
scrolling a TextArea with their mouse wheel, as the TextArea is
inside of a ScrollPane, and at the moment scrolling one will scroll
the other (double scrolling). Initially I tried:
tArea.textField.mouseWheelEnabled = false;
However, this didn't work. After doing some research I found some suggestions to override the childrenCreated function of my class that extends TextArea, ala
override protected function childrenCreated():void {
super.childrenCreated();
textField.mouseWheelEnabled = false;
}
but this will only work in Actionscript 2. Finally after doing some more research, I found some suggestions to intercept and disable events, ala
this.addEventListener(ScrollEvent.SCROLL, this.disableScrollHandler);
textField.addEventListener(MouseEvent.MOUSE_WHEEL, disableMouseHandler, true);
verticalScrollBar.addEventListener(MouseEvent.MOUSE_WHEEL, disableMouseHandler, true);
addEventListener(MouseEvent.MOUSE_WHEEL, disableMouseHandler, true);
textField.addEventListener(MouseEvent.CLICK, disableMouseHandler, true);
verticalScrollBar.addEventListener(MouseEvent.CLICK, disableMouseHandler, true);
this.addEventListener(MouseEvent.CLICK, disableMouseHandler, true);
.
.
.
function disableMouseHandler(event:MouseEvent):void {
trace("disableClickHandler");
event.preventDefault();
event.stopPropagation();
}
function disableScrollHandler(event:ScrollEvent):void {
trace("disableClickHandler");
event.preventDefault();
event.stopPropagation();
}
But this failed as well. Did I doing something wrong? Is this just not possible? What's the deal here?
Thanks,
Stephen M.
tArea.textField.mouseWheelEnabled = false;
However, this didn't work. After doing some research I found some suggestions to override the childrenCreated function of my class that extends TextArea, ala
override protected function childrenCreated():void {
super.childrenCreated();
textField.mouseWheelEnabled = false;
}
but this will only work in Actionscript 2. Finally after doing some more research, I found some suggestions to intercept and disable events, ala
this.addEventListener(ScrollEvent.SCROLL, this.disableScrollHandler);
textField.addEventListener(MouseEvent.MOUSE_WHEEL, disableMouseHandler, true);
verticalScrollBar.addEventListener(MouseEvent.MOUSE_WHEEL, disableMouseHandler, true);
addEventListener(MouseEvent.MOUSE_WHEEL, disableMouseHandler, true);
textField.addEventListener(MouseEvent.CLICK, disableMouseHandler, true);
verticalScrollBar.addEventListener(MouseEvent.CLICK, disableMouseHandler, true);
this.addEventListener(MouseEvent.CLICK, disableMouseHandler, true);
.
.
.
function disableMouseHandler(event:MouseEvent):void {
trace("disableClickHandler");
event.preventDefault();
event.stopPropagation();
}
function disableScrollHandler(event:ScrollEvent):void {
trace("disableClickHandler");
event.preventDefault();
event.stopPropagation();
}
But this failed as well. Did I doing something wrong? Is this just not possible? What's the deal here?
Thanks,
Stephen M.