Изменение стиля изображения вызывает запуск LoadEvent? - PullRequest
2 голосов
/ 11 марта 2011

Насколько я могу судить, это изменение стиля изображения вызывает запуск LoadEvent. Кто-нибудь может это подтвердить? Объясни это? Это GWT в Firefox 3.

Image image = new Image("image_src_URL");

image.addLoadHandler(new LoadHandler() {
    @Override
    public void onLoad(LoadEvent event) {
        double ratio = 0.5;
        image.getElement().getStyle().setWidth(image.getWidth() * ratio, Style.Unit.PX);
        Window.alert("You are in onLoad");
    }
}

Этот код фактически находится внутри метода onLoad, и я ясно вижу, что он вводится дважды. Есть намеки? Есть ли другой способ изменить размер изображения, которое не будет вызывать событие? image.setWidth() делает то же самое.

1 Ответ

1 голос
/ 11 марта 2011

Вам нужен LoadHandler, чтобы когда-нибудь стрелять более одного раза?Вы можете отменить регистрацию:

new LoadHandler() {
  HandlerRegistration reg = image.addLoadHandler(this);

  @Override
  public void onLoad(LoadEvent evt) {
    reg.removeHandler();
    // Reset style
  }
}
...