setCache()和CacheHint在JavaFX中如何协同工作?
关于JavaFX,我有以下问题:setCache()和CacheHint在JavaFX中如何协同工作?,java,caching,javafx,Java,Caching,Javafx,关于JavaFX,我有以下问题: 我是否需要在节点上使用setCache(true)来获得setCacheHint()设置的缓存提示,才能真正发挥作用 调用setCache是否应该在某些时间或大部分时间提高性能,即帧速率?当我使用setCache(true)并应用缩放和其他变换时,我无法观察到帧速率的任何变化 我是否需要在节点上使用setCache(true)来获得setCacheHint()设置的缓存提示,才能真正发挥作用 对 该属性提示系统是否应该缓存节点渲染(作为内部图像) 该属性向系统提
我在我编写的小游戏中使用了
setCache(true)
和setCacheHint(CacheHint.SPEED)
的组合,这些小游戏同时具有多个动画节点,并对节点应用了多种效果和半透明效果。这些设置确实大大加快了速度(MacOSX、MacBookAir 2012、JavaFX2.2)
您也可以手动获取节点树的快照,并用快照图像手动替换节点树,而不是依赖于渲染系统的提示。这种快照技术并不总是最好的方法,但如果提示在您的情况下效果不好,它确实为您提供了另一种选择。谢谢-非常好的解释@jewelsea您知道父节点的缓存提示是否会影响该节点的子节点吗?(例如,一个
组
父节点,包含大量动画循环
子节点)缓存提示会影响父节点,而父节点包含子节点-因此缓存提示会影响子节点。它们只是提示,因此,如果您想确切地了解发生了什么,您可能需要检查JavaFX源代码或在调试器中逐步完成渲染过程的代码,这可能会变得复杂。