私はキャンバスを使用してHTML5ゲームを実装しています。今私はキャンバス上の絶対的な位置を持つHTML要素を使用して、ツールチップ、スピーチバブル、インフォボックスなどのすべてのテキストオーバーレイを作成することを考えています。だから私はCSS3が提供する多くのエフェクトとトランジションを使用できます。キャンバスとCSS3の要素の組み合わせ
パフォーマンスについてはわかりません。これらのオーバーレイは自由に追加して削除する必要があります(MMORPGのようなものなので、たくさんの吹き出しなどがあります)。
パフォーマンスに関する2つの質問はおそらくあります
DOMのトラバーサル追加/削除するには。たぶんキャッシュが助けることができますか?
HTMLとCSS3自体。
これらの要素をキャンバス自体で管理し、各フレームを描画することもできます。しかし、CSS3のような同様の効果を得るために、余分なコード、タイムアウト、追加しなければならないものがあるため、パフォーマンスペナルティが発生する可能性があります。とにかく、いくつかのデータ構造のトラバーサルが必要になります。
アドバイス、意見、経験はありますか?
ありがとうございます。
「重要な」要素への参照をキャッシュすることで、DOMの通過時間を短縮できます。私はしばしばこの目的のためにsomeUniqueId => DOMElementのハッシュを保持します。 idは、このスキームを支援するために要素にdata- *属性として格納することができます。 CSS3とCanvasを混在させる場合、私はこの戦略について自分自身(+1)に疑問を抱いていました。変換(キャンバスの座標 - >スクリーン座標)は抽象化しなければならないか、キャンバスの上に通常の要素を配置する場所を見つけようとすると混乱することになります。 –