前回は「超簡単なコードを書いて、感動してみる」が目的だったので、字面の通りに超簡単に書いてみた。
いくら、仕事では「PHPやらC#を使っていて、Flashは使わないのさ」と言っても、もう少しきちんとコードを書くべきではないかと思ったりする。
そこで、
【今回の目的】
・少しだけ、コードを整形する
【今回のサンプル】
ここ(http://system.logosware.com/blogimag/0515/sample/)。
【今回の結果】
何をやっているのかが、非常に見やすくなった・・・はず。
【次回の課題】
実は、ObjectContainer3Dというのを使っていない。
Objectが1個なのでSceneに直接置いているが、2個置くと、そいつらが一緒にグルグルしてしまう。
それぞれのObjectを独立して扱うためには、Scene>Container>Objectのようにしなければならないようだ。
次回は、Away3Dの本家サイトのチュートリアルをちゃんと読んで、もう少し“正しく”書くことを目標にする。
以下、今回の遊び。
【mxmlにコードを書くのをやめる】
どうにもMain.mxmlにコードが書かれていると、落ち着かない。
そこで今回は、App.asにすべてのコードを移した。
Main.mxmlはこれだけになった(<mx:Application>の間に書かれるものは)。
<ns1:App x="0" y="0" width="100%" height="100%" id="app"/>
【App.asを書く】
コンストラクタで、
・Viewを作る
・Cameraを置く
・Sceneを置く
・Objectを置く
・グルグル回す
を順に実行することにした。
それぞれ該当する関数を作成すれば、今後機能を追加させやすい。
コードは以下。
package { import mx.core.UIComponent; import away3d.containers.View3D; import away3d.containers.Scene3D; import away3d.cameras.Camera3D; import away3d.primitives.Sphere; import flash.events.*; public class App extends UIComponent { // Away3D view internal var view:View3D = null; // Away3D camera internal var camera:Camera3D = null; // Away3D scene internal var scene:Scene3D = null; public function App() { super(); initVIew(); initCamera(); initScene(); initObject(); } private function initVIew():void { view = new View3D(); view.x = 400; view.y = 200; addEventListener(Event.ENTER_FRAME, onEnterFrame); addChild(view); } private function initCamera():void { camera = new Camera3D(); camera.zoom = 100; camera.focus = 10; camera.z = -1000; view.camera = camera; } private function initScene():void { scene = new Scene3D(); view.scene = scene; } private function initObject():void { var sphere:Sphere = new Sphere(); view.scene.addChild(sphere); } private function onEnterFrame( event: Event ):void { scene.rotationY = scene.rotationY+5; scene.rotationX = scene.rotationX+10; view.render(); } } }
ロゴスウェア
最新記事 by ロゴスウェア (全て見る)
- Amazon Linux(EC2)と PHPSTORM で Xdebug を行う - 2018年9月26日
- やらないことの合意 - 2018年6月27日
- 卒園アルバムとプロジェクトマネジメント - 2018年3月30日
Comments are closed.