我使用從Timing Framework Animator類以執行一個簡單的動畫(運動一個JPanel)結束觸發事件,大致基於實施例在Filthy Rich Clients爪哇時序框架 - 在一個動畫動畫
我已經重寫的timingEvent()如下
public void timingEvent(float arg0) {
float fraction = this.animator.getTimingFraction();
fraction = Math.min(1.0f, fraction);
if (fraction >= 1.0f) {
this.mainGUI.initiateSwitchToMainScreenTransition();
} else if (fraction < 0.5f) {
this.translateY = (int) (MAX_Y * (2 * fraction));
repaint();
}
}
我已經覆蓋paint()以使用translateY中的值將面板向下移動。
動畫本身完美運作。
我的問題是調用initiateSwitchToMainScreenTransition(),我想在動畫完成時執行它。雖然這起作用,但在動畫結束和調用觸發之間存在相當大的延遲(調試已確認問題不是啓動切換到主屏幕傳輸()的時間長度 - 延遲發生在調用之前)。
有沒有更好的方法來實現這一點,即沒有延遲?
謝謝。我實際上昨晚注意到了end()方法,並轉而使用它。但不幸的是,它並沒有擺脫這種延遲。我已經將動畫設置爲1800毫秒,但似乎在1000毫秒內完成了很多工作,導致我的代碼被激發之前延遲了800毫秒。 – William 2009-07-08 11:01:29