PV3D裡的可視物件建置, 都是一個物件, 貼上一個材質, 再被加入至Scene3D物件裡,
然後運算出來。
接下來我們試著建立一個Plane物件, 並貼上色彩材質ColorMaterial。
Plane類別是繼承DisplayObject3D, 所以擁有x,y,z等屬性。
new Plane(材質:MaterialObject3D, 寬:Number, 高:Number,
水平切面數:Number, 垂直切面數:Number);
參數1:材質,只要是任何繼承MaterialObject3D的物件,都可以被當作材質來使用。
參數2:Plane物件的寬度。
參數3:Plane物件的高度。
參數4:水平切面數。
參數5:垂直切面數。
切面數會影響到圖片的品質,切面越高,圖片能呈現的效果越好, 但相對的就需要更多的運算。
ColorMaterial類別。
色材材質, 只能是單一的顏色。
new ColorMaterial(色碼:uint,透明度:Number);
參數1:色碼。
參數2:透明度, 由0完成透明到1不透明。
PV3D2.0基本教學二
然後運算出來。
接下來我們試著建立一個Plane物件, 並貼上色彩材質ColorMaterial。
Plane類別是繼承DisplayObject3D, 所以擁有x,y,z等屬性。
new Plane(材質:MaterialObject3D, 寬:Number, 高:Number,
水平切面數:Number, 垂直切面數:Number);
參數1:材質,只要是任何繼承MaterialObject3D的物件,都可以被當作材質來使用。
參數2:Plane物件的寬度。
參數3:Plane物件的高度。
參數4:水平切面數。
參數5:垂直切面數。
切面數會影響到圖片的品質,切面越高,圖片能呈現的效果越好, 但相對的就需要更多的運算。
ColorMaterial類別。
色材材質, 只能是單一的顏色。
new ColorMaterial(色碼:uint,透明度:Number);
參數1:色碼。
參數2:透明度, 由0完成透明到1不透明。
package { import flash.display.MovieClip; import flash.events.Event; import org.papervision3d.view.BasicView; import org.papervision3d.materials.ColorMaterial; //匯入材質包裡的色彩材質。 import org.papervision3d.objects.primitives.Plane //匯入基本物件包裡的Plane物件。 public class A02_primitives_Plane extends MovieClip { private var view :BasicView; private var plane :Plane; //宣告plane變數, 型別為Plane。 public function A02_primitives_Plane():void { init3DEngine(); initPV3DObject(); } private function init3DEngine():void{ view = new BasicView(0, 0, true, true, "Target"); this.addChild(view); this.addEventListener(Event.ENTER_FRAME, onEventRender3D); } private function initPV3DObject():void { var colorMat:ColorMaterial = new ColorMaterial(0xA7C520, 1); //建立色彩材質 new ColorMaterial(色碼:uint , 透明度:Number)。 colorMat.doubleSided = true; //開啟材質的雙面模式, 預設為false。 //如果沒開啟該模式, 當物件背對鏡頭時, 就會看不見。 plane = new Plane(colorMat, 300, 300); //建立plane物件 new Plane(材質:Material ,寬:Number ,高:Number) view.scene.addChild(plane); //view.scene加入將plane物件。 } private function onEventRender3D(e:Event):void { plane.rotationY += 3; //plane物件, rotationY每次加3。 //以上程式可以寫成plane.rotationY = plane.rotationY +3; view.singleRender(); } } }PV3D2.0基本教學一
PV3D2.0基本教學二
留言
plane.rotationY += 3
這一句的意思是plane這個物件會向Y軸3個單位對不對,那我想問的是這個Event如何被啟動的,是物件倍滑鼠按到了,還是我在場景任何地方只要滑鼠有動作他就會跟著動呢?可以請綠奶伯伯幫我解答嗎?謝謝你摟~
這段程式碼是寫在EnterFrame裡
所以他會自已不斷的自轉, 不需等到觸發事件,
plane.rotationY = plane.rotationY + 3
二者的意思是一樣的
plane物件依自已的y軸心向正的方向每次加3個單元