演示者节目中的GWT呼叫方法

时间:2016-06-02 07:54:01

标签: css gwt svg

我的问题与我的另一个问题有关:SVG using CSS3 animations in GWT

但它更简单。在演示者完全加载后,GWT中是否有办法调用方法?

例如,让我们在一个窗口(演示者)中有一个SVG图片,在另一个窗口(演示者)中有文本。单击一个按钮,它会更改SVG图像演示者的文本演示者,反之亦然(调用go()方法)。我需要从svg中删除所有CSS并重新应用它,但必须在更改演示者和加载图像之后完成。如果我在go()方法中执行此操作,则无效。目前正在使用schudleFixedDelay()进行攻击,但希望不那么苛刻。

EDIT1: 我的意思是当演示者内容完全显示在DOM中时,我想启动一些代码。它可能与加载SVG图像无关,只是显示它。如何知道演示者的所有内容何时显示并添加到DOM?

EDIT2: 好的,所以scheduleDeferred功能正是我想要的。我知道这个功能并使用它,但我似乎有更具体的问题。 scheduleDeferred函数调用我的方法来修复协调就好了。但是当我之前使用它时,由于修复坐标的方法,它不起作用。看来,当我在SVG元素上调用removeAttribute("class")时,我不能在此之后setAttribute("class", "classname")。我必须在那里做scheduleFixedDelay至少100毫秒,否则它不起作用。不确定延迟是否适用于所有地方(手机,平板电脑......),但我不知道为什么没有延迟就无法正常工作。这对我来说可能是一个解决方案。

1 个答案:

答案 0 :(得分:0)

除非您使用代码拆分,否则GWT代码会一次性加载 - 在您的应用执行第一行代码之前。我假设您的意思是“所有演示者代码都已执行”或“SVG图像已完成加载”。

根据您加载图片的方式,您可以使用实现加载处理程序的Image类(即您可以使用onLoad())。

或者,您应该在Scheduler类中使用scheduleDeferred方法,而不是固定延迟,如下所述:GWT: Timer and Scheduler Classes