ActionScript 3.0 學習(十六) away3D學習1
阿新 • • 發佈:2019-01-01
下面幾期會發布away3d相關的一些基本內容,away3d的類庫是開源的可以在網上下載。本節介紹基本的用away3d繪製一個小球,程式碼如下:
package { import flash.display.Sprite; import flash.display.MovieClip; import away3d.containers.View3D; import away3d.containers.Scene3D; import away3d.cameras.Camera3D; import flash.events.Event; import away3d.materials.ColorMaterial; import away3d.primitives.SphereGeometry; import away3d.entities.Mesh; import away3d.lights.DirectionalLight; import away3d.materials.lightpickers.StaticLightPicker; /** * 建立away3d的3D世界 首先我們得了解away3d的幾個基本類 也是每次我們做的時候必須初始化的 View3D ,Scene3D ,Camera3D。這三個類我做下簡單的解釋 1 View3D 我們可以理解為一個窗子。就像我們站在屋外可以通過窗子看到屋內的傢俱。同理 如果同時有多扇窗子,我們就可以看到多個屋內環境。在AWAY3D裡面 我也可以通過建立多個View3D來看到這個3D世界。 2 Scene3D 我還是拿屋子做比較。Scene3D就類似這個屋內這個空間。因為這個空間的存在。我們才能向裡面放置傢俱。 3 Camera3D 這個就類似我們的眼睛。因為它我們才看到這個世界。我們改變Camera3D 的座標 遍可以從不同角度來觀看這個3D世界 * */ public class Away3DLearn extends Sprite { private var _view:View3D; private var _scene:Scene3D; private var _camera:Camera3D; private var _material:ColorMaterial; private var _sphere:SphereGeometry; private var _sphereMesh:Mesh; private var _dl:DirectionalLight; private var _dl2:DirectionalLight; private var _light:StaticLightPicker; public function Away3DLearn() { _view=new View3D(); addChild(_view); _scene=new Scene3D(); _view.scene=_scene; _camera=new Camera3D(); _view.camera=_camera; _material=new ColorMaterial(0xffffff); _sphere=new SphereGeometry(100,32,32); _sphereMesh=new Mesh(_sphere,_material); _view.scene.addChild(_sphereMesh); _dl=new DirectionalLight(); _dl2=new DirectionalLight(-1,-1,1); _dl2.ambient=.1 _light=new StaticLightPicker([_dl2]); _sphereMesh.material.lightPicker=_light; _view.scene.addChild(_dl); this.addEventListener(Event.ENTER_FRAME,enterFrameFunction) } private function enterFrameFunction(evt:Event):void { _view.render(); } } }