KineticJS入門 – 図形を描いてみる
HTML5+CSS3は将来、Flashに替わるものになり得るのかという議論があります。
個人的には基本、オープンかつシンプルな技術が富をもたらすと信じているので、環境を選ぶFlashに対しては、それに替わる技術が発展するとすれば、それは大いに期待したいところではあります。
その可能性を感じさせる技術のひとつに、JavaScriptのライブラリ「KineticJS」があります。
KineticJS – HTML5 Canvas JavaScript Library Framework
今回は「KineticJS」について少しお勉強してみたいと思います。
KineticJSを組み込む
上記の公式サイトの「Download」より「KinecticJS」の最新版をダウンロードします。現時点での最新版は3.9.8です。
ダウンロードしたライブラリを、通常のJSを読み込む要領で以下のようにします。
<script src="/js/kinetic-v3.9.8.min.js"></script>
準備はこれだけでOKです。
長方形を描いてみる
まずは、Canvasを描くエリアを用意します。
<div id="canvas1"></div>
まず、描写エリアのidを指定して、300×200のサイズのステージを用意します。
そこにサイズ100×50の赤枠の正方形を、上から50px、左から100pxの位置に描写します。
window.onload = function() { var stage = new Kinetic.Stage({ container:"canvas1", width:300, height:200 }); var layer = new Kinetic.Layer(); var rect = new Kinetic.Rect({ x:100, y:50, width:100, height:50, stroke:"red" }); layer.add(rect); stage.add(layer); };
図形の情報をもったrectを、オブジェクトlayerに追加して、さらにそのlayerをオブジェクトstageに追加することで、描写処理が完了します。
実際の実行結果は以下のとおりです。Firefoxの最新版やGoogle Chromeの最新版などの対応ブラウザであれば、問題なく見れていると思います。
円を描いてみる
同様にして、関数Circleをコールすることで、円を描写することができます。
var stage = new Kinetic.Stage({ container:"canvas2", width:300, height:200 }); var layer = new Kinetic.Layer(); var circle = new Kinetic.Circle({ x:200, y:100, strokeWidth:100, stroke:"blue" }); layer.add(circle2); stage.add(layer2);
直径が100pxの青色の円を、上から100px、左から200pxの位置に描写します。
レイヤーやステージを意識したオブジェクト名になっているので、AS3に近い感覚でプログラミングできますね。
また、ここまでは、何もJSライブラリがなくとも、HTML5+CSS3のみで実装できそうなレベルです。
その先は次回にお勉強したいと思います。