[心得] Paperversion3D AS3版:Create Cube

看板Flash作者 (陌生人)時間18年前 (2007/11/20 16:32), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
研究Paperversion3D(以下簡稱PV3)老半天,終於畫出個方塊(Cube)來... 我之前遇到的問題主要是現在的PV3 Cube必須以MaterialList各別設定Cube的六個面。 PV3有個討論群組很好用...這是Link: http://www.nabble.com/Papervision3D-f22855.html 寫個心得回饋一下... 直接看Flex Code+註解說明,要寫在叫myCube.as的檔案中。 package { //把需要的Package import進來 import flash.display.Bitmap; import flash.display.Sprite; import flash.events.Event; import org.papervision3d.cameras.Camera3D; import org.papervision3d.materials.*; import org.papervision3d.objects.*; import org.papervision3d.scenes.Scene3D; import org.papervision3d.core.proto.MaterialObject3D; [SWF(backgroundColor="#000000", frameRate="60", width="400", height="400")] public class myCube extends Sprite { private var container:Sprite; private var scene:Scene3D; private var camera:Camera3D; public function myCube() { //自訂一個叫init3D的函數把物件都初始化 init3D(); //用自己寫的loop3D不停Render出畫面 addEventListener(Event.ENTER_FRAME, loop3D); } private function init3D():void { container = new Sprite(); addChild(container); container.x = 200; container.y = 200; scene = new Scene3D(container); camera = new Camera3D(); camera.z = -1500; camera.zoom = 10; camera.focus = 100; //先設定Cube六個面的材質:MaterialsList var ml:MaterialsList = new MaterialsList( { //front, back, right, left, top, bottom 和 all 是關鍵字不可變 //如果是要設定單一顏色就new ColorMaterial() //如果是要設定一個外部顏色就new BitmapFileMaterial() //如果是要載入Fla Library中的物件用new MovieAssetMaterial() //其他可以設定到MaterialsList中的東東請參考這裡 // http://tinyurl.com/34djux front: new BitmapFileMaterial( "logo.gif" ), //注意這裡是豆號(,) back: new ColorMaterial(0xFF0000, 1), //不是分號(;) right: new BitmapFileMaterial( "logo.gif" ), left: new ColorMaterial(0x333333, 1), top: new BitmapFileMaterial( logo.gif" ), bottom: new MovieAssetMaterial( "Bottom", true ) } ); //設定一個創造出一個Cube來 var myCube:Cube = new Cube( ml, 100, 100, 100, 1, 1, 1, Cube.ALL, Cube.TOP ); //加到場景中 scene.addChild( myCube, "Cube_1" ); } private function loop3D(event:Event):void { var myCube:DisplayObject3D = scene.getChildByName("Cube_1"); //依心情旋轉這個Cube比較有3D的感覺...一_一| if(myCube!=null) { myCube.rotationX++; } scene.renderCamera(camera); } } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ※ 編輯: dreamboxer 來自: 211.20.177.117 (11/20 16:35)
文章代碼(AID): #17Gfkq1j (Flash)
文章代碼(AID): #17Gfkq1j (Flash)