public void actionPerformed(ActionEvent e) {
			final long currentAnimationTime = System.nanoTime() / 1000000;
			final long totalTime = currentAnimationTime - fAnimationStartTime;
			if(totalTime > fDuration) {
				fAnimationStartTime = totalTime;
			}
			float fraction = (float) totalTime / fDuration;
			fraction = Math.min(1f, fraction);
			if(fraction == 1f) {
				stop();
			} else {
				fAnimationTarget.event(AnimationTimer.this, fraction);
			}
		}