RSS Pipesの一機能として、スマホ向けのRSSリーダーみたいなものを作ってみようかと思います。
まずは、KineticJSの勉強をしているところです。 HTML5 Canvas KineticJS Tutorials を参考にしながら作っていきます。
HTMLのコードを説明します。
初めに、KineticJSの読み込みます。
<script src="http://d3lp1msu2r81bx.cloudfront.net/kjs/js/lib/kinetic-v4.4.2.min.js"></script>
試しに使う場合はこのままでいいでしょう。デプロイするときはローカルに持ってこようと思います。
次に、自分のスクリプトを読み込みます。
<script src="test.js" defer="defer"></script>
deferを指定しておくことで、HTMLのロード後に読み込まれます。
空のbodyにIDを指定しておきます。
<body id="container"></body>
こうしておくことで、KineticJSのstageをbodyの直下に作ります。
さて、ちょっとだけCSSが必要です。
html, body {
margin: 0;
padding: 0;
overflow: hidden;
}
これを指定しないと、Canvasの周りにマージンができてしまって、Full Canvasになりません。また、overflowを指定しないと、ChromeやFirefoxでスクロールバーが出てしまいました。
続いて、本題のJavaScriptのコードを説明します。
KineticJSのステージを作ります。
var stage = new Kinetic.Stage({
container: 'container',
width: window.innerWidth,
height: window.innerHeight
});
widthとheightを表示領域一杯にすることで、Full Canvasとなります。
レイヤーを作ります。
var layer = new Kinetic.Layer();
表示領域一杯の四角形オブジェクトを作ります。
var rect = new Kinetic.Rect({
x: 0,
y: 0,
width: stage.getWidth(),
height: stage.getHeight(),
fill: 'black'
});
黒にしてみました。
Hello Worldの文字オブジェクトを作ります。
var text = new Kinetic.Text({
x: stage.getWidth() / 2,
y: stage.getHeight() / 2,
text: 'Hello World!',
fontSize: 30,
fontFamily: 'Arial',
fill: 'lightgray'
});
ステージのサイズから計算して中央に配置しています。x,yは文字オブジェクトの左上の座標です。そこで、ちょっとずらして文字オブジェクトの中心に合わせます。
text.setOffset({
x: text.getWidth() / 2,
y: text.getHeight() / 2
});
最後に、四角形オブジェクトと文字オブジェクトをレイヤーに追加して、そのレイヤーをステージに追加して、終わりです。
layer.add(rect);
layer.add(text);
stage.add(layer);
これで、Canvasのみを使ってHello Worldを表示するページを作ることができました。アプリと呼べるようになるまでにはまだまだかかりそうですね。
実行結果はこんな感じです。
コードはGistにアップしておきました。 https://gist.github.com/dai-shi/5404537
コメント