スマートフォンやhtml5+CSS3など新技術に四苦八苦。jQuery、AjaxなどJavaScriptも難しいですね。そんなWebに悩む人のネタ帳です。

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のみで実装できそうなレベルです。
その先は次回にお勉強したいと思います。

このエントリーをはてなブックマークに追加

Pingback & Trackback

Comment

Comment Form

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Monthly Archives

Search