次に示すステップバイステップのチュートリアルは、アニメーションにインタラクティブ機能を追加するために Flash WebGL ランタイム API を使用し始めるのに役立ちます。このチュートリアルでは、シンプルな FLA ファイルから始めて、ステージに MovieClip インスタンスを追加するために API を使用します。
-
night_webgl.fla ファイルをダウンロードして、Adobe Flash Professional CC 2014 で開きます。ステージの夜空のビットマップイメージがファイルに含まれていることが確認できます。
-
var count = 0; function onAdd() { var sgf = player.getScenegraphFactory(); var star = sgf.createMovieClipInstance("star"); player.getStage().addChildAt(star, 0); var x = Math.random() * 540; var y = Math.random() * 180; var s = Math.random(); var mat = new flwebgl.geom.Matrix([s, 0, 0, s, x, y]); star.setLocalTransform(mat); count++; document.getElementById("count").innerHTML = count + (count > 1 ? " stars" : " star"); }
ここで起こっていることを次に示します。
- 変数「player」は、WebGL プレーヤーのインスタンスを参照する、API の外観です。
- SceneGraphFactory への参照が取得されます。ムービークリップのインスタンスを作成するために使用されます。
- MovieClip インスタンスは、createMovieClipInstance() 関数を使用して作成され、Flash で指定されたリンケージ名が渡されます。
- ステージ(ルートタイムライン)への参照がプレーヤーから取得されます。
- addChildAt() 関数を使用して、新しい MovieClip インスタンスがステージの子として追加されます。この関数に 0 を渡すことで、ステージの他のすべての子の上に子が追加されます(ビットマップの上)。
- Matrix クラスを使用して、星の位置とサイズが設定されます。
注意:
完成例をここからダウンロードできます。
ダウンロード
注意:
- HTML 内のキャンバスに WebGL アニメーションをレンダリングするので、周囲の HTML を修正する必要はありません。この例では、作成された星の数が維持されます。
- 上述の例は、インタラクティブなアニメーションおよびゲームを作成し始めるために重要です。シーン上のエレメントを制御するその他の方法について詳しくは、WebGL ランタイム API ドキュメントページを参照してください。
- コンテンツをパブリッシュする場合、Flash はアートワークを GPU に対応した形式に変換します。計算に負荷がかかるので、この処理が完了するまで数分かかる場合があります。アートワークの線と曲線の数を最小限にすることをお勧めします。修正/シェイプメニューの下のオプションを使用してアートワークを最適化、スムージングおよび直線化することで、アートワークを簡素化できます。これにより、レンダリングパフォーマンスを向上させ、パブリッシュにかかる時間を削減できます。