2009-10-20 38 views
0

我正在嘗試使用一個ImageView來滾動按鈕,該按鈕應該在按下時滾動某些圖像。我試着用的MouseEvent的primaryButtonDown物業辦,但它響應的應用程序:JavaFX在按下按鈕時觸發一個動作

ivbutton.onMousePressed = function (e) { 
    while (e.primaryButtonDown){ 
     //Scroll Stuff 
    } 

你知道一個方法來創建這樣的按鈕嗎?

謝謝。

回答

2

你能鏈接滾動到時間軸動畫嗎? 然後按鈕可以控制時間線的開始和停止。

例如,這是類似的,但它控制一個正方形的旋轉(也許你可以使用一個TranslateTransition):

import javafx.scene.shape.Rectangle; 
import javafx.scene.paint.Color; 
import javafx.animation.transition.RotateTransition; 
import javafx.animation.Timeline; 
import javafx.scene.control.Button; 
import javafx.scene.Scene; 
import javafx.stage.Stage; 
import javafx.animation.Interpolator; 

def r = Rectangle { 
    x: 80 y: 80 
    height: 100 width: 100 
    arcHeight: 50 arcWidth: 50 
    fill: Color.VIOLET 
} 

def rotTransition = RotateTransition { 
    duration: 1s 
    node: r 
    byAngle: 180 
    repeatCount: Timeline.INDEFINITE 
    interpolator: Interpolator.LINEAR 
} 

def b = Button { 
    text: "Click and hold" 
    onMousePressed: function (e) { 
     rotTransition.play(); 
    }; 
    onMouseReleased: function (e) { 
     rotTransition.stop(); 
    }; 
}; 
Stage { 
    title : "Rotation" 
    scene: Scene { 
     width: 250 
     height: 250 
     content: [r,b] 
    } 
} 
+0

感謝,搗爛。很棒。 – Averroes 2009-10-21 18:40:31