2016-01-15 6 views
1

Есть ли какие-либо простые способы сделать следующее, когда вы пишете этикетку?Могу ли я настроить мелодии?

  1. Пауза в течение 3 секунд каждый раз, когда текст возвращается в исходное положение?
  2. Простота и удобство интервалов между тиками. Как и для JavaFX Motion для облегчения входа и выхода?
  3. Сделать тикающий поток более плавным, а не быть немного нервным?
+0

Я хотел бы предложить для будущих случаев, вы разделяете такие вопросы на 3 вопроса, поскольку, если разработчик не знает ответа на один из них, он не может публиковать ответ на вопрос, который он знает. –

ответ

1

Да, но вам нужно будет сделать это вручную.

Просто переопределить Label и переопределить его метод animate(). Я не пробовал это, но что-то, как это может работать для всех ваших требований:

Label tickeredLabel = new Label(myText) { 
    Motion tickeringMotion; 
    long pauseTime = System.currentTimeMillis(); 
    public boolean animate() { 
     long currentTime = System.currentTimeMillis(); 

     // wait 3 seconds for tickering 
     if(currentTime - pauseTime < 3000) { 
      return false; 
     } 

     // use ease in/out motion over 5 seconds 
     if(tickeringMotion == null) { 
      tickeringMotion = Motion.createEaseInOutMotion(0, getStringWidth(getStyle().getFont(), 5000); 
      tickeringMotion.start(); 
     } else { 
      // when motion is finished return to 3 second delay 
      if(tickeringMotion.isFinished()) { 
      tickeringMotion = null; 
      pauseTime = System.currentTimeMillis(); 
      } 
     } 
     setShiftText(tickeringMotion.getValue()); 
     return changed; 
    } 
}; 

сглаживать tickering далее просто заставить его двигаться один пиксель за один раз специально