每月封存: 六月 2008

奶綠茶提到 PV3D 可以直接在 3D 空間畫線,而且還是 2.0 版新增的功能喔!
只是單純測試 Lines3D 類別,再加上之前算過球體座標,那就簡單地畫個經緯線。
Lines3D 一樣要下材質 LineMaterial ,但也只能設定顏色和透明度而已。
畫線用 addNewLine() 方法最簡單,只要給一個寬度和兩組 xyz 座標就可以了!
另外還有一個 addLine() 方法,但得要給一個 Line3D 物件;
而 Line3D 的初始又得給 Vertex3D 物件;反正就是很麻煩!
要清除所有線段,找到一個 removeAllLines() 方法;但是沒有用!
研判這個 function 應該只能移除 Line3D 物件吧!?
看來還是不能偷懶呀! 改天再好好研究囉?

來試試自訂的 Class 要如何透過自訂事件互相溝通。
自訂廣播事件的寫法是:dispatchEvent(new Event(“……”));
再把事件和偵聽函式串連:addEventListener(“……”, function);
至於繪圖的方式稍微改了一下,為的是和前一個有所區別,似乎原本的還是比較好看!?
另外還有一個新發現~~~
前陣子看到最新的 Flash Player 10,本著實驗的精神,就把自己的電腦全面升級。
沒想到,在 web base 下跑這兩個 demo 竟把 CPU 操到滿載!?
前幾個 demo 不管是 plane 還是 cube 都還不會操到這種程度。
我想,可能是 graphics 的關係吧!?
換回 9.0.124 就很順了。

其實一直都很喜歡 360 幾何繪圖的效果,讓我體驗到純數學也可以繪圖。
這個 demo 主要是在測試 PV3D 的 MovieMaterial;
還有在 Flash 做好的 MovieClip 怎麼拿到 FlashDevelop 來用。
MovieMaterial 顧名思義就是用 MC 做為 Material,但 PV3D 的貼圖會自動縮放以佈滿 3D Model;
所以像這種動態產生內容的影片片段,最好在開始繪圖前先產生一張定義範圍用的背景。
至於在 FlashDevelop 匯入 MC 的方法,這次是用 SWC 匯入,而不是用 SWF !
用 Google 找到一個不錯的方法,在 Project 裡新增一個 src 資料夾,
把 SWC 放到裡面,在 FD 對其按右鍵選 Add To Library。
完全不用 import ,就可以直接取用裡面的 Class 了!
還沒有實驗組件內外的溝通與事件機制,下次再試囉!?

禮拜六老師教了幾個在 PV3D 裡除了 Plane 以外的 3D Object;
其中以 Cube 最為特別,所以就拿 Cube 來做個 Demo 吧!?
滑鼠移過會對著游標,移出後會帶 follow 旋轉,嘗試做出讓游標在玩這個 Cube 的感覺。
實驗後發現 Cube 的 rotationY 和 rotationZ 有點怪,總是無法照著想像中的樣子去旋轉!?
邦邦的部落格: Papervision3D 教學 part 5.2 — 不支援依照當下視角做旋轉
似乎 PV3D 的旋轉是有些限制的;但 DisplayObject3D 還有三個跟旋轉有關的 Methods 可以試試:
pitch(angle:Number):void、roll(angle:Number):void、yaw(angle:Number):void
另外,原本對 Material 下 smooth = true; 希望能有更好的顯示效果。
卻使得 Flash Player 頻頻「秀逗」!?
為了平衡效能,只好把 smooth 拿掉了。





