2

私はJavaFXで個人的なプロジェクト(ゲーム)に取り組んでいますが、あなたの提案を受け入れるための質問があります。ご存知のように、JavaFXは.fxmlファイルのデータを解析できます。したがって、私のメインマップ(.jpegファイルから.svgファイルに変換)はfxmlファイルから構築され、すべての国が同じプロパティを持つSVGPathに変換されるNodeためShape、すべての国でMouseListenerを使用していくつかの効果を挿入する必要があります。さらに、これらの効果を実装する方法は2つあります。

  • FXML-CSSを使用できます(hoverすべての国のプロパティのように(つまり、すべてのNodeまたはShape
  • CSSを使用する代わりに、MouseListenersを使用してJavaFXでエフェクトを実装できます。

私の質問は、どちらがより効率的で信頼できるかということです。または、両方を使用すると、同期の問題が発生しますか?

私の質問が明確であることを願っています、そして私はすべての答えに感謝します。とにかくありがとう

4

1 に答える 1

3

cssを使用する場合と同等のJavaコードAPIを使用する場合ではパフォーマンスの違いがありますが、概要を説明する状況(マウスリスナーとホバーcss疑似クラスの実装)では、パフォーマンスの違いは重要ではありません。

あなたは効果について言及しますが、あなたが使用している効果については実際には言いません。JavaFX 2には、css(dropshadowとinnershadow)を介した効果機能が制限されているため、そのバージョンでは、とにかくほとんどの効果をコードに適用する必要があります。とにかく、コードにエフェクトを適用することとcssを適用することの間に実際のパフォーマンスの違いはないはずです。

エフェクトの使用に関して達成できる主なパフォーマンスの向上は、JavaFXノードのcacheプロパティとcacheHintプロパティを適切に設定することです。これにより、JavaFXシステムは、シーンがアニメートされるときに常にエフェクトを再計算するのではなく、エフェクトを事前に計算して結果をキャッシュします。JavaFX 2.2では、cacheプロパティの設定はcacheHintコード(またはfxmlマークアップ)からのみ実行でき、cssからは実行できません。


一般的な背景情報については、次の関連する質問が役立つ場合があります。

于 2013-03-13T21:47:56.980 に答える