2

次のコードは、最新 (24.0.1312.52) バージョンの Chrome で無限アニメーションになります。同じコードが FF/IE でうまく動作します。

public class Test implements EntryPoint {
@Override
public void onModuleLoad() {
    DeckLayoutPanel deck = new DeckLayoutPanel();
    deck.setWidth("100%");
    deck.setHeight("100px");
    deck.setAnimationDuration(3000);
    deck.setWidget(new Label("Hello world"));

    RootLayoutPanel.get().add(deck);
}
}

他の誰かもこの問題に遭遇しましたか?

4

2 に答える 2

3

requestAnimationFrameこれは、ミリ秒未満のタイマーを使用するようになった Chrome の変更による GWT 2.4 のバグです。これは GWT 2.5.0 で修正されました。

https://groups.google.com/d/topic/google-web-toolkit/UBWsvHYM4SEおよびhttps://plus.google.com/113357348071579443502/posts/apHjmAcynRaなどを参照してください。

于 2013-01-14T11:48:15.507 に答える
1

Thomas は正確に正しく、これは GWT 2.5 で正しかった GWT 2.4 のバグです。

まだ GWT 2.4 を使用している場合、最新の chrome ビルドで発生した多くの問題は、次の会話で解決できます。

https://groups.google.com/forum/#!topic/google-web-toolkit/UBWsvHYM4SE

FTA: 回避策の概要は、以下を .gwt.xml ファイルに追加することです。

<!-- TEMP FIX UNTIL GOING TO GWT 2.5 -->
<!-- Fallback implementation, based on a timer -->
<replace-with class="com.google.gwt.animation.client.AnimationSchedulerImplTimer">
  <when-type-is class="com.google.gwt.animation.client.AnimationScheduler"/>
  <any>
    <when-property-is name="user.agent" value="ie6"/>
    <when-property-is name="user.agent" value="ie8"/>
    <when-property-is name="user.agent" value="ie9"/>
    <when-property-is name="user.agent" value="safari"/>
    <when-property-is name="user.agent" value="opera"/>
  </any>
</replace-with>

<!-- Implementation based on mozRequestAnimationFrame -->
<replace-with class="com.google.gwt.animation.client.AnimationSchedulerImplMozilla">
  <when-type-is class="com.google.gwt.animation.client.AnimationScheduler"/>
  <when-property-is name="user.agent" value="gecko1_8"/>
</replace-with>
<!-- ************* END ************* -->
于 2013-01-14T13:52:39.953 に答える