2009-10-20 40 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