Flash 版 Away3D で地球を回してみるテスト
帰ってきた「○○ で地球を回してみる」シリーズ。
先日、JavaScript 版の Away3D を試しましたが、今回は、本家 Flash 版の Away3D を試してみたいと思います。
0. 事前準備
以下の開発環境とライブラリを用意します。
- 開発環境
- FlashDevelop
- Flex SDK (FlashDevelop のインストーラ版を用いると自動的にインストールされます)
- ライブラリ
なお、FlashDevelop のインストール方法については
■ FlashDevelop をインストールしてみる - CX's Hatena Blog
を、参照頂ければと思います。
1. FlashDevelop を起動する
2. プロジェクトを作成する
[プロジェクト] - [新規プロジェクト] にてプロジェクトを作成します。
プロジェクトの種類は「AS3 Project」、プロジェクト名は「earth」としておきます。
3. プロジェクトフォルダにライブラリを追加する
src 配下をプロジェクトのフォルダにコピーします。
コピーが完了すると、FlashDevelop にてフォルダが追加されたことを確認できます。
4. プロジェクトフォルダにテクスチャファイルを追加する
テクスチャ画像ファイル「earth.jpg」(1024x512)をプロジェクトフォルダにコピーします。
5. プロジェクトの設定を変更する
既定だと Flash Player のバージョンが「10.x」になっていますが、Away3D を用いる場合は「11.x」に変更します。
6. ソースを修正する。
- Main.as
package { import flash.display.Sprite; import flash.events.Event; import flash.display.StageScaleMode; import flash.display.StageAlign; import away3d.containers.View3D; import away3d.entities.Mesh; import away3d.materials.TextureMaterial import away3d.textures.BitmapTexture; import away3d.textures.Texture2DBase; import away3d.primitives.SphereGeometry; public class Main extends Sprite { [Embed(source="earth.jpg")] private var assetEarth:Class; private var view3d:View3D; private var mesh:Mesh; public function Main():void { init(); } private function init():void { view3d = new View3D(); addChild(view3d); var ts:Texture2DBase = new BitmapTexture(new assetEarth().bitmapData); var material:TextureMaterial = new TextureMaterial(ts); var geometry:SphereGeometry = new SphereGeometry(450,450,100); mesh = new Mesh(geometry, material); view3d.scene.addChild(mesh); stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; stage.addEventListener(Event.RESIZE, onStageResize); this.addEventListener(Event.ENTER_FRAME, handleEnterFrame, false, 0, true); } private function onStageResize(event:Event):void { view3d.width = stage.stageWidth; view3d.height = stage.stageHeight; } private function handleEnterFrame(event:Event):void { mesh.rotationY -= 0.5; view3d.render(); } } }
JavaScript 版と比べると、3D のロジック部分は、ほぼ同等のコードであることが分かります。
7. 実行してみる
「F5」でコンパイル&実行されます。(ちなみに、[Ctrl]+[Enter] でデバッグ実行になります。)
地球が回れば成功です。
8. Wonderfl.net で実行してみる。
せっかくなので、Flash 投稿サイト「Wonderfl.net」にアップしてみたいと思います。
Away3D で地球を回してみるテスト - wonderfl build flash online
なお、Wonderfl.net にアップしたコードは、組み込みリソースが利用できない為、テクスチャの読み込み処理を手直ししています。