Java 当从websocket调用GWT动画时,它们是否运行?

Java 当从websocket调用GWT动画时,它们是否运行?,java,javascript,animation,gwt,atmosphere,Java,Javascript,Animation,Gwt,Atmosphere,我试图让GWT动画在atmosphere websocket回调中工作,但动画似乎从未开始 这是我的动画代码 public class SearchViewAnimation extends Animation { private final Element element; private int startX; private int startY; private int finalX; private int finalY; public

我试图让GWT动画在atmosphere websocket回调中工作,但动画似乎从未开始

这是我的动画代码

public class SearchViewAnimation extends Animation
{
    private final Element element;
    private int startX;
    private int startY;
    private int finalX;
    private int finalY;

    public SearchViewAnimation(Element element)
    {
        this.element = element;
    }

    public void scrollTo(int x, int y, int milliseconds)
    {
        this.finalX = x;
        this.finalY = y;

        startX = element.getOffsetLeft();
        startY = element.getOffsetTop();

        run(milliseconds);
    }

    @Override
    protected void onUpdate(double progress)
    {
        double positionX = startX + (progress * (this.finalX - startX));
        double positionY = startY + (progress * (this.finalY - startY));

        this.element.getStyle().setLeft(positionX, Style.Unit.PX);
        this.element.getStyle().setTop(positionY, Style.Unit.PX);
    }

    @Override
    protected void onComplete()
    {
        super.onComplete();
        this.element.getStyle().setLeft(this.finalX, Style.Unit.PX);
        this.element.getStyle().setTop(this.finalY, Style.Unit.PX);
    }
}
这是我用来称呼它的代码

public class SearchViewImpl extends Composite implements ISearchView {

    private static SearchViewImplUiBinder uiBinder = GWT
            .create(SearchViewImplUiBinder.class);
    @UiField AbsolutePanel Panel;

    interface SearchViewImplUiBinder extends UiBinder<Widget, SearchViewImpl> {
    }

    public SearchViewImpl() {
        initWidget(uiBinder.createAndBindUi(this));
    }

    @Override
    public void setNewUser(IUser user) {
        SearchElementImpl elem = new SearchElementImpl();
        elem.setUser(user);

        Panel.add(elem);

        SearchViewAnimation animation = new SearchViewAnimation(elem.getElement());
        animation.scrollTo(500, 500, 5000); 
    }
}
public类searchview impl扩展了复合实现ISearchView{
私有静态SearchViewImplUiBinder uiBinder=GWT
.create(SearchViewImplUiBinder.class);
@UiField绝对面板;
界面SearchViewImplUiBinder扩展了UiBinder{
}
公共搜索视图impl(){
initWidget(uiBinder.createAndBindUi(this));
}
@凌驾
public void setNewUser(IUser用户){
SearchElementImpl elem=新的SearchElementImpl();
元素setUser(用户);
面板。添加(元素);
SearchViewAnimation animation=新的SearchViewAnimation(elem.getElement());
动画.scrollTo(5005005000);
}
}
fn setNewUser是从atmosphere websocket回调调用的,大约每十秒钟执行一次,但是动画似乎从未在页面上实际移动,因为我希望它也会通过scrollTo fn移动。我在一个小的GWT测试项目中对它进行了测试,没有websocket,动画似乎可以正常工作。
web套接字是否会影响GWT代码中动画的使用?如果是,是否有人知道如何让websocket实际影响一些动画?

因此,出于某种原因,您需要

        Panel.setSize("500px", "500px");
        Panel.addStyleName("absolutePanel");
设置动画工作的位置

有人知道吗。。 A.如何设置绝对面板的大小及其包含面板的大小 B为什么需要在“绝对”面板上设置样式才能使动画正常工作