【问题标题】:about javafx webview and javafx animation, svg关于 javafx webview 和 javafx 动画,svg
【发布时间】:2014-05-22 14:24:09
【问题描述】:
  1. 关于 javafx 中 webview 节点的问题。 我制作了 svg 动画,然后将其调用到 javafx 中的 webview 节点中。 看起来效果不错,但是由于 webview 具有东方背景颜色,它覆盖了其他节点。所以将 webview 的不透明度设置为 0.2 。结果,它不仅提供了背景透明度,还提供了 webview 上的动画。这让我疯了。帮助。

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

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

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

【问题讨论】:

    标签: java animation svg javafx


    【解决方案1】:

    WebView 背景不透明度

    所以将 webview 的不透明度设置为 0.2 。因此,它不仅提供了背景透明度,还提供了 webview 上的动画

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

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

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

      webView.setBlendMode(BlendMode.MULTIPLY);
      

    动画插值

    当它旋转完成 360 度时,它看起来就像是瞬间停止。然后再次旋转开始,并在完成时再次停止,再次开始,在完成时再次停止......我该如何防止,在旋转完成时“立即停止旋转”。

    您描述的行为,在开始动画循环时加速,在停止动画循环时减速,称为“缓入”和“缓出”,这是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();
    

    控件自定义

    自定义加载进度条

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

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

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

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

    对未来问题的建议

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

    我知道您的问题与您正在做的事情有某种联系,但是,对于您的下一个问题,如果您可以将此类问题拆分为单独的问题,并在问题中提供指向相关主题的链接,那就更容易了让你得到好的答案。

    救救我.. T.T

    已保存。 . . ;-)

    【讨论】:

    • 非常感谢。真令人印象深刻。
    猜你喜欢
    • 2015-11-13
    • 1970-01-01
    • 2013-09-03
    • 2017-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-04
    相关资源
    最近更新 更多