2

我想使用 Java Trident 库来动画屏幕转换。

我有一系列以 CardLayout 排列的面板。在一个面板上单击 JButton 时,将显示一个新面板。我想实现某种淡入动画,而不是让它立即出现。

我已经读过,只需将面板移出屏幕并在我想要转换时更改 x 坐标,就可以实现滑入式动画。

我试过设置一些东西,但我知道我做得不对。我需要调用 cl.show() 来实际显示我想要的面板:

CardLayout cl = (CardLayout)(GameContainer.getLayout()); 
screenChangeTimeline = new Timeline(cl);
screenChangeTimeline.addPropertyToInterpolate("layout", "MainMenuPanel", "TwoPlayerPanel");
screenChangeTimeline.setDuration(1500);

GameContainer 是具有 CardLayout 的面板,所有其他面板都位于其中。

4

2 回答 2

2

滑动效果示例 http://java-sl.com/tip_slider.html

于 2012-04-26T17:17:34.000 回答
2

使用图像创建动画效果可能更容易,而不是面板的实际滑动。捕获您正在隐藏的面板和您将要显示的面板的图像。使用滑动效果为这些图像设置动画。动画完成后,交换实际面板。这是一个演示类似想法的示例。它使用辅助卡来滚动从两个面板组合的图像。

您可能对现成的解决方案 - Animatingcardlayout感兴趣。它提供了 CardLayout 的扩展和一组不同的动画。

此外,请查看 Kirill Grouchnikov(Trident 的创建者)的一系列文章 -动画布局

于 2012-04-26T18:17:09.707 回答