0

我试图弄清楚BoxComponentEvent的哪个属性会告诉我生成的 OnMouseWheel 事件是向上滚动还是向下滚动事件。我已经输出了 BoxComponentEvent 公开的所有属性的值;并且所有这些(事件发生的坐标除外)都保持不变。Google 和 Ext-GWT 文档在提供具体示例方面毫无用处。

public class MyPanel extends ContentPanel {
    // ...
    public MyPanel() {
        addListener(Events.OnMouseWheel, new Listener<BoxComponentEvent>() {
            public void handleEvent(BoxComponentEvent be) {
                // What happens here to distinguish scroll-up and scroll-down?
            }
        });
    }

    protected void afterRender() {
        super.afterRender();
        el().addEventsSunk(Events.OnMouseWheel.getEventCode());
    }
    // ...
}
4

2 回答 2

1
be.getEvent().getMouseWheelVelocityY()
于 2010-11-25T01:14:25.840 回答
0

我对此进行了测试,并且可以正常工作:

private int vpos = 0;
public MyPanel() {
        ContentPanel contents = new ContentPanel();
        contents.setHeight(500);

        add(new Label("This is MyPanel"));
        add(contents);
        setHeight(300);
        setScrollMode(Scroll.ALWAYS);
        vpos = getVScrollPosition();

        addListener(Events.Scroll, new Listener<BaseEvent>(){

            @Override
            public void handleEvent(BaseEvent be) {

                int newVpos = getVScrollPosition();
                if(newVpos<vpos){
                    Info.display("DEBUG", "UP!");
                } else if(newVpos>vpos){
                    Info.display("DEBUG", "DOWN!");
                }
                vpos = newVpos;

            }});
    }
于 2009-12-01T15:24:24.047 回答