使用JavaFX DropShadow移动节点会留下痕迹
在我用JavaFX开发的一个游戏中,我有带s的牌。牌可以移动,当它们移动时,阴影会留下一条微弱的痕迹。我试过使用,它可以工作,但会模糊标签中的文本 是否有其他方法可以防止使用JavaFX DropShadow移动节点会留下痕迹,java,javafx,javafx-8,dropshadow,Java,Javafx,Javafx 8,Dropshadow,在我用JavaFX开发的一个游戏中,我有带s的牌。牌可以移动,当它们移动时,阴影会留下一条微弱的痕迹。我试过使用,它可以工作,但会模糊标签中的文本 是否有其他方法可以防止DropShadow留下痕迹? 以下是一个MCVE,结果如下: public class DropShadowTest extends Application { @Override public void start(final Stage stage) throws Exception {
DropShadow
留下痕迹?
以下是一个MCVE,结果如下:
public class DropShadowTest extends Application {
@Override
public void start(final Stage stage) throws Exception {
final Label label = new Label("Hello, world!");
label.setBackground(new Background(new BackgroundFill(Color.LIGHTGRAY, new CornerRadii(10), Insets.EMPTY)));
label.setEffect(new DropShadow(3, 0, 1, Color.BLACK));
label.setMaxSize(100, 100);
label.setMinSize(100, 100);
stage.setScene(new Scene(new StackPane(label), 640, 480));
stage.show();
label.setOnMouseClicked(event -> {
final TranslateTransition anim = new TranslateTransition(Duration.seconds(1), label);
anim.setToX(Math.random() * 500 - 250);
anim.setToY(Math.random() * 300 - 150);
anim.play();
});
}
public static void main(final String[] args) {
Application.launch(args);
}
}
结果:
谢谢 尝试使用缓存,例如,在开始设置动画之前,请将缓存提示设置为 完成切换回的动画后,它将重新渲染节点(如swing中的repaint())