キャンバスとは
Mozilla には Canvas に関するチュートリアルがたくさんありますが、私の学習プロセスを記録することにしました。私の書いた内容が十分に明確ではないと思われる場合は、Mozilla Web サイトの参考文献にある Canvas チュートリアルへのリンクを参照してください。
また、興味深い Canvas の例が ここ にあります。
Canvas を始めましょう
Canvas の使用は、他の HTML 要素と同様に、ページに
Firefox 3.0.x 的尴尬
Firefox 3.0.x 虽然支持了 canvas 元素,但是并没有完全按照规范来实现,规范中的 fillText、measureText 两个方法在 Firefox 3.0.x 中被几个 Firefox 特有的方法代替,因此在 Firefox 3.0.x 中使用 Canvas 时需要先 fix 这个几个方法在不同浏览器中的差别。
下面这代码取自 Mozilla Bespin 项目,它修正了 Firefox 3.0.x 中 Canvas 的 Context 对象与 HTML5 规范不一致的地方:
注意:到 Opera 9.5 为止,Opera 还不支持 HTML5 规范中 Canvas 对象的 fillText 以及其相关方法和属性。
Hello, Canvas!
在对 Canvas 进行了一些初步了解后,开始来写我们的第一个 Canvas 程序,闻名的 HelloWorld 的又一个分支“Hello, Canvas”:
サンプルを実行すると、Canvas オブジェクトが配置されている領域に「Hello, World!」が表示されます。これは、コード内の ctx.fillText("Hello, World!", 20, 20); とまったく同じです。
fillText と関連属性
fillText メソッドは Canvas にテキストを表示するために使用されます。このメソッドは 4 つのパラメータを受け入れることができ、最後のパラメータはオプションです:
void fillText(DOMString テキスト内、float x 内、float y 内、[オプション] float maxWidth 内);
ここで、maxWidth はテキストを表示するときの最大幅を表し、テキストのオーバーフローを防ぐことができます。ただし、私のテストでは、Firefox と Chomre で maxWidth を指定しても効果がないことがわかりました。
fillText メソッドを使用する前に、Context の font 属性を設定することで表示されるテキストのフォントを調整できます。上記の例では、表示されるテキストのフォントとして「20pt Arial」を使用しました。具体的な効果を見てください。
終了
今回はここまでです。仕様書を読みながらこのシリーズを書きます:)
参考資料