EaselJS の概要 (CreateJS のフレームワークその 1)

前の記事で紹介した Flash Professional Toolkit for CreateJS は、CreateJS と呼ばれるオープンソースのフレームワーク群の使用を前提としています。そのため、Flash Pro から書き出された html ファイルと js ファイルは、Canvas の API を利用する代わりに CreateJS の API を呼び出します。

デモビデオ内で紹介されたコードは、こんな感じでした。

(lib.shadow2 = function() {
this.initialize(); this.shape = new Shape(); ...

ということで、書き出されたコンテンツの編集をするには、CreateJS の使い方を学ばないとダメそうです。 (単純なタイムラインアニメーションは別として...)

ただし、これは、AS3 の知識がある人には、むしろ良い話かもです。というのは、CreateJS の API は Flash Player の API を意識して設計されているからです。

そこで、今回は CreateJS の中心となるフレームワーク EaselJS の概要を紹介します。

なお、現在公開されている EaselJS のバージョンは v0.4 です。CreateJS 公開時には、何らかのアップデートが行われるかもしれませんが、とりあえず。

主要なクラス

以下は v4.0 時点の EaselJS の主なクラスです。AS3 を書いたことがあれば、最後の Ticker 以外は見ただけで使い方が分かりそうな名前になってます。

  • DisplayObject
    画面に表示される要素のベースとなるクラス。表示オブジェクトに共通の属性 (x, y, rotation, scaleX, scaleY, skewX, skewY, alpha, 等) を持つ
  • Container
    表示オブジェクトの階層を作る。複数の表示オブジェクトをまとめて扱いたい時に利用
  • Stage
    表示リストの最上位となる Container。update() メソッドを呼ぶと Canvas が更新される
  • Text
    テキストを表示する
  • Shape
    ベクター画像を表示する
  • Graphics
    ベクターグラフィックスを描くための API を提供する
  • Bitmap
    画像やビデオを表示する
  • Ticker
    指定された間隔で tick イベントを発行する。

「あれ、MovieClip が無い?」 と思った方へ: デモビデオを良く見ると、画面のコード内にはちゃんと存在していたようです。なので、「何らかのアップデート」 が進められているものと思われます。

ハローワールド

さて、下は EaselJS を使う場合の HTML ファイルの基本的な構造です。ファイルが読み込まれると (下の例では) init() が呼び出されます。

<html>
<head> <script src="libs/easel.js"></script> <script> function init() { // ここにCreateJSのコードを記述... } </script> </head> <body onload="init();"> <canvas id="canvas" width="400" height="300"></canvas>
</body>
</html>

init() メソッドでは、最初に Canvas 要素を取得して、それを元に Stage オブジェクトを生成します。ここまでは、どのプログラムでも同じです。

今回は、"Hello World" というテキストを表示したいので、Text オブジェクトを生成して、それを Stage オブジェクトに追加します。

function init() {
  // 描画するCanvas要素を取得
  var canvas = document.getElementById("canvas");
  // Stageオブジェクトを生成
  var stage = new Stage(canvas);
 
  // Textオブジェクトを生成
  var text = new Text("Hello World", "24px Arial", "#000");
  text.x = 100;
  text.y = 100;
 
  // TextオブジェクトをStageに追加
  stage.addChild(text);
  stage.update();
}

Stage に表示オブジェクトを追加するメソッドは addChild() です。最後に update() メソッドを呼ぶと、Canvas にテキストが表示されます。

ベクター画像

次は、Shape と Graphics を使って、ベクター図形を表示する例の紹介です。

まず、図形を Graphics のオブジェクトに描画して、それを Shape オブジェクトに渡すのが基本的な手順です。Graphics には描画用の様々な (なんとなく見慣れた) API が用意されています。

function init() {
  var canvas = document.getElementById("canvas");
  var stage = new Stage(canvas);
 
  // Graphicsオブジェクトの生成と描画
  var g = new Graphics();
  g.setStrokeStyle(1);
  g.beginStroke(Graphics.getRGB(0,0,0));
  g.beginFill(Graphics.getRGB(255,0,0));
  g.drawCircle(0,0,30);
 
  // Shapeオブジェクトを生成
  var shape = new Shape(g);
  shape.x = 50;
  shape.y = 50;
 
  stage.addChild(shape);
  stage.update();
}

Shape オブジェクトを stage に追加して update() を呼ぶ箇所は、Text のときと一緒です。

ここまでを見ての印象はいかがでしょうか? 最初の 1 行だけ除けば、ActionScript のコードだと言われても違和感の無い感じです。

Ticker と Tween.js を使ったアニメーションの話は次回に続きます。

 

トラックバック(0)

トラックバックURL: http://cuaoar.jp/mt4/mt-tb.cgi/277

コメントする

2014年1月

Sun Mon Tue Wed Thu Fri Sat
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
レンタルサーバー

月別 アーカイブ

Powered by Movable Type 4.261