java - 关于 javafx webview 和 javafx 动画,svg

标签 java animation svg javafx

  1. 关于 javafx 中的 webview 节点的问题。 我制作了 svg 动画,然后将其调用到 javafx 中的 webview 节点中。 看起来工作得很好但是,因为 webview 有东方背景颜色,它覆盖了其他节点。所以将 webview 的不透明度设置为 0.2 。因此,它不仅为背景提供了透明度,还为 webview 上的动画提供了透明度。这让我发疯。帮助。

  2. 关于 javafx rotateAnimation。 这并不复杂。但无法解决我自己T.T. 使 ImageView 节点成为 Scene 并无限地播放旋转 imageView。 它工作得很好,但有一件事太荒谬了。 当它旋转完成 360 度时,它看起来就像瞬间停止。然后旋转再次开始,完成时再次停止,再次开始,完成时再次停止...... 我怎样才能防止在旋转结束时“立即停止旋转”。救救我..T.T

  3. 关于 Java 图形的正确方法。 我想尽可能多地制作java动画和图形。 不过好像很难。。 起初,我想要制作我的自定义加载进度条。 所以我尝试使用 swing paint、paintComponent 等制作动画。 但在进行中.. 我注意到 javafx 是 java 图形的 future 。 而且..哇,javafx 与 css、javascript、scene builder、svg 合作...... 所以尝试一个一个.. 但是 fx - css 它不是东方的 css 语法,所以找到一些引用指南并使用它。 但是那个 oracle 指南并不是 fx-css 的全部内容。 所以当我需要一些风格时,我必须在谷歌中找到。偶尔会失败。。 所以我认为,“这不是图形的好方法……” 所以尝试svg,并成功制作动画。 但是无法将 svg 导入 javafx.. 所以找到..找到..找到.. .. 最后我找到了解决方案。它是 svg 到 webview 中。但是又回到了问题1。

想知道什么是自定义 java 图形和动画的正确方法。

最佳答案

WebView 背景不透明度

So make webview's opacity to 0.2 . as a result, it give transparency not only background but also animation on webview

有一个feature request (JDK-8090547)允许 WebView 背景的不透明度独立于 WebView 的内容而变化。从 Java 8 开始,功能请求尚未实现。您可以为该功能投票或对其发表评论。它是对 JavaFX 投票最多的功能请求之一。目前未计划在即将发布的版本中实现。

作为部分解决方法,您可以使用 Oracle 论坛线程中 MiPa 的建议(尽管它确实有缺点并且不是完整的解决方案):

  • 您可以通过使用 WebView 的混合模式来实现一种透明效果。如果您有一个白色背景和黑色字母的网页,您可以通过将混合模式设置为 MULTIPLY 来实现透明效果。

    webView.setBlendMode(BlendMode.MULTIPLY);
    

动画插值

When it rotate finish 360, it look's like stop momently. And then rotate start again, and at finish it stop again, start again, stop again at finish... how can I prevent, "stop rotate momently" at finish of rotate.

你描述的行为,在开始动画循环时加速,在停止动画循环时减速,被称为“缓入”和“缓出”,这是一种 tweening .通过内插缓动函数,旋转量随时间变化。你可以找到这样的例子 easing functions (这些示例适用于 JavaScript,但该概念对动画框架来说是通用的,适用于 JavaFX)。

Transition 的默认插值行为是 EASE_BOTH插值,如 setInterpolator javadoc 中所述.

因此,为了让您的 RotateTransition 有一个平滑的循环,您应该明确地将过渡上的插值器设置为 LINEAR .

Rectangle rectangle = new Rectangle(100, 100, 50, 50, Color.CRIMSON);
RotateTransition rotator = new RotateTransition(Duration.seconds(2), rectangle);
rotator.setInterpolator(Interpolator.LINEAR);
rotator.setCycleCount(Animation.INDEFINITE);
rotator.play();

控件自定义

custom loading progressBar

JavaFX 已经有一个 ProgressBar这是pretty customizable .最好从它开始并对其进行自定义,然后尝试构建您自己的。

Want to know what is right way to custom java graphic and animation.

正如您所发现的,没有一种正确的方法,有不同的方法或多或少地适合不同的任务。您的问题中没有足够的信息供任何人就此真正向您提供建议。

我确实认为使用 WebView 在 JavaFX 中托管动画 SVG,仅用于动画目的,是一种奇怪的解决方案 - 但这并不意味着它“错误”。

对 future 问题的建议

如果您还有其他问题,请将其作为后续(新)问题提出,并在其中包含图像、视频、动画 gif、所需动画的描述、您尝试实现它的示例代码等。

我知道您的问题在某种程度上与您正在做的事情相关联,但是,对于您的下一个问题,如果您可以将此类问题拆分为单独的问题,并仅在问题中提供相关主题的链接,这会更容易为您获得好的答案。

Save me.. T.T

已保存。 . . ;-)

关于java - 关于 javafx webview 和 javafx 动画,svg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22961616/

相关文章:

css - SVG 属性和特性

javascript - 如何从 SVG 路径字符串获取像素坐标

css - 在 CSS 伪元素中引用内联 SVG?

Java 应用程序将日志记录相关的错误消息打印到标准输出

java - Log4j SMTP 将错误消息发送到电子邮件

java - 如何根据 Firestore 中的位置获取数据?

android - 是否有适用于 Android 的 Hero iOS 版本?

JavaFX 11 : IllegalAccessError when creating Label

ios - CALayer 圆形蒙版动画不正确的行为 + Swift

iphone - 您可以在 iPhone 中使用 Quartz 制作渐变动画吗?