[心得] Paperversion3D AS3版:Create Cube
研究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)
討論串 (同標題文章)
Flash 近期熱門文章
PTT數位生活區 即時熱門文章