Java 当从websocket调用GWT动画时,它们是否运行?
我试图让GWT动画在atmosphere websocket回调中工作,但动画似乎从未开始 这是我的动画代码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
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为什么需要在“绝对”面板上设置样式才能使动画正常工作