Akiyamaプログラミングのメモや自分に関することを書いているブログです。エフェクトをつけるに書いた。Safariで表示した際に、ピンボケというか過剰なアンチエイリアスというか、ぼやけた感じになってしまった。おかしいな、と思って実験したら、特定の条件下でAnimationsを適用した場合にぼやけてレンダリングされることが分かった。Animationsを適用しているどれかの要素でCSS3のアニメーションが継続中といった場合だ。そこで、実験をしてみた。エフェクトをつけるjavascriptのゲーム用ライブラリenchant.jsがステキすぎてハマりそうな感じではあるのだけれど、フェードイン/フェードアウトとか移動とかそういったエフェクトが見当たらず、フレームごとの処理が必要になりそうなのが面倒だった。jQueryのEffectsが使えたらフェードインしたりスライドさせたり何かと楽でいいんじゃないかと思ったので、連携方法を模索。コード見ていたらdiv要素を持っているクラスは_elementという変数で保持しているようなので、その変数を返す関数をprototypeで拡張してみた。hierarchyが載ってるのが大変ありがたい公式が充実しているので大抵のことがまかなえる。ドキュメントをよく見て分からないところは、enchant.js(enchant.min.jsじゃない方)のソースコードを読めば日本語のコメントがついていて大変分かりやすい。enchant.jsではSpriteやLabelといった表示内容はHTMLのdiv要素で構成される。このdiv要素に対してHTMLのタグを追加してゲームっぽくない要素を追加したい時どうすればいいんだろうと、enchant.jsのソースを読んでいたら、そもそもenchant.Labelのtext属性はLabelを構成するdivのinnerHTMLを設定するものだった。そのため、以下のように書けば簡単に画面内にHTMLで構成した要素を登場させられる。height:120px;">これはテストです。